{"id":18352766,"url":"https://github.com/membraneframework/unifex","last_synced_at":"2025-05-16T11:04:00.013Z","repository":{"id":33234081,"uuid":"142186256","full_name":"membraneframework/unifex","owner":"membraneframework","description":"Tool for generating interfaces between native C code and Elixir","archived":false,"fork":false,"pushed_at":"2024-11-13T09:20:43.000Z","size":879,"stargazers_count":82,"open_issues_count":0,"forks_count":12,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-05-16T03:48:49.048Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/membraneframework.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-24T16:38:57.000Z","updated_at":"2025-05-10T20:45:38.000Z","dependencies_parsed_at":"2024-03-11T20:32:01.717Z","dependency_job_id":"a282e84a-1c6c-4148-8d2e-d9d791d67999","html_url":"https://github.com/membraneframework/unifex","commit_stats":{"total_commits":464,"total_committers":23,"mean_commits":20.17391304347826,"dds":0.7112068965517242,"last_synced_commit":"ffb143282f8da4b8c1bd2758ae6ec5d953b7de41"},"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/membraneframework%2Funifex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/membraneframework%2Funifex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/membraneframework%2Funifex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/membraneframework%2Funifex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/membraneframework","download_url":"https://codeload.github.com/membraneframework/unifex/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254518384,"owners_count":22084374,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T21:37:15.220Z","updated_at":"2025-05-16T11:03:59.995Z","avatar_url":"https://github.com/membraneframework.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Unifex\n\n[![Hex.pm](https://img.shields.io/hexpm/v/unifex.svg)](https://hex.pm/packages/unifex)\n[![API Docs](https://img.shields.io/badge/api-docs-yellow.svg?style=flat)](https://hexdocs.pm/unifex/)\n[![CircleCI](https://circleci.com/gh/membraneframework/unifex.svg?style=svg)](https://circleci.com/gh/membraneframework/unifex)\n\nUnifex is a tool for generating interfaces between native C code and Elixir, that:\n- provides intuitive and concise tools for defining native interfaces,\n- generates all the boilerplate for you,\n- provides useful abstractions over binaries and state,\n- makes native code independent from [erl_nif](https://erlang.org/doc/man/erl_nif.html) \n  or [ei](https://erlang.org/doc/man/ei.html) library, so the same code is usable either with NIFs or CNodes.\n\nAPI documentation is available at [HexDocs](https://hexdocs.pm/unifex/).\n\nUnifex uses [Bundlex](https://github.com/membraneframework/bundlex) to compile and load the native code. See there for supported platforms \u0026 details.\n\nThis tool is maintained by the [Membrane Framework](https://membraneframework.org/) team.\n\nThis version supports bugged version of functions returning nil, as well as fixed ones. This functionality should be removed in version 2.0.0\nFor more info see: [Issue](https://github.com/membraneframework/membrane_core/issues/758)\n\n## Installation\n\nTo install, you need to configure Mix project as follows:\n\n```elixir\ndefmodule MyApp.Mixfile do\n  use Mix.Project\n\n  def project do\n    [\n      app: :my_app,\n      compilers: [:unifex, :bundlex] ++ Mix.compilers, # add unifex and bundlex to compilers\n      ...,\n      deps: deps()\n   ]\n  end\n\n  defp deps() do\n    [\n      {:unifex, \"~\u003e 1.2\"}\n    ]\n  end\nend\n```\n\n## Usage\n\nFor detailed usage description see [Creating Unifex Natives](https://hexdocs.pm/unifex/creating_unifex_natives.html) guide.\n\n## Supported types\n\nFor currently supported types see [Supported Types](https://hexdocs.pm/unifex/supported_types.html) section.\n\n## See also\n\nUnifex depends on the following libraries:\n- [Bundlex](https://github.com/membraneframework/bundlex)\n- [Shmex](https://github.com/membraneframework/shmex)\n\n## Copyright and License\n\nCopyright 2018, [Software Mansion](https://swmansion.com/?utm_source=git\u0026utm_medium=readme\u0026utm_campaign=membrane)\n\n[![Software Mansion](https://logo.swmansion.com/logo?color=white\u0026variant=desktop\u0026width=200\u0026tag=membrane-github)](https://swmansion.com/?utm_source=git\u0026utm_medium=readme\u0026utm_campaign=membrane)\n\nLicensed under the [Apache License, Version 2.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmembraneframework%2Funifex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmembraneframework%2Funifex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmembraneframework%2Funifex/lists"}