Files
elixir-ffi/docs/devlog.md
2026-02-01 15:16:13 +00:00

42 lines
977 B
Markdown

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