4个版本 (2个重大更改)
0.3.0 | 2022年5月27日 |
---|---|
0.2.0 | 2022年5月27日 |
0.1.1 | 2022年5月26日 |
0.1.0 | 2022年5月26日 |
#7 in #nif
20KB
239 代码行
rustler_elixir_fun
是否曾想在Rust代码中调用Elixir函数?现在你可以了!
此包暴露了Rust代码,以便从Rust代码端进行交互。
有关详细信息,请参阅主GitHub仓库。
安装
- 将其添加为你的
Cargo.toml
依赖项。 - 将同名Elixir库添加到你的
mix.exs
。
使用方法
要调用的主要函数是apply_elixir_fun
let some_result : Result<Term, Error> = rustler_elixir_fun::apply_elixir_fun(env, pid_or_process_name, fun, parameters)
此函数将尝试使用Elixir侧的parameters
调用fun
,并阻塞调用者,直到有结果可用。
- 请确保将调用此函数的任何NIF注册为“脏CPU NIF”!(通过在NIF上使用
#[rustler::nif)]
进行注释)。这有两个原因- 从Elixir返回可能确实需要相当长的时间。
- 我们想要防止调度器等待自己,否则有时可能会发生这种情况。
依赖项
~265–580KB
~11K SLoC