Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/joshnuss/elixir-ffi

Foreign Function Interface (FFI) for Elixir
https://github.com/joshnuss/elixir-ffi

elixir ffi

Last synced: 4 days ago
JSON representation

Foreign Function Interface (FFI) for Elixir

Awesome Lists containing this project

README

        

FFI
===

*** Warning: Turns out this is a really bad idea, do not use! When the BEAM calls native functions it needs to know how many reductions should be used. Otherwise calling a long running function can break the scheduling completly, because with this approach a long running function is considered 1 reduction ***

An easy way to call external functions (e.g. C functions) from [Elixir](https://github.com/elixir-lang/elixir).

Inspired by [Ruby's FFI](https://github.com/ffi/ffi)

** This is alpha software **

## Example Program

```elixir
defmodule MyLib do
use FFI.Library, name: "libstdc++.so.6"

attach_function :puts, [:string], :int
end

MyLib.puts("Hello World from C stdlib")
```

## Installation

The package can be installed by adding `ffi` to your list of dependencies in `mix.exs`:

```elixir
def deps do
[{:ffi, git: "https://github.com/joshnuss/elixir-ffi.git"}]
end
```

## Running Examples

```shell
mix run examples/basic.exs
```

## License

MIT