<div dir="ltr">Since Rust is hitting 1.0.0-release shortly, now is a good time to point out some Rust NIF libraries I’ve been working on.  “Rust” is a modern systems language with a focus on speed, safety and concurrency.  “Ruster-Unsafe” is a bare binding of the C NIF API.  “Ruster” is a higher level binding that sits atop Ruster-Unsafe.<br><br>Ruster-Unsafe is usable today, but Ruster is still under heavy construction.  It is premature for me to be announcing Ruster, but I thought I would mention it since I'm already talking about Rust and Ruster-Unsafe.<div><br>Ruster-Unsafe<br>demo: <a href="https://github.com/goertzenator/ruster_unsafe_demo">https://github.com/goertzenator/ruster_unsafe_demo</a><br>docs: <a href="http://goertzenator.github.io/ruster_unsafe/ruster_unsafe/index.html">http://goertzenator.github.io/ruster_unsafe/ruster_unsafe/index.html</a><br>source: <a href="https://github.com/goertzenator/ruster_unsafe">https://github.com/goertzenator/ruster_unsafe</a><br><br>Ruster: <a href="https://github.com/goertzenator/ruster">https://github.com/goertzenator/ruster</a><br>Rust: <a href="http://www.rust-lang.org/">http://www.rust-lang.org/</a><br><br>A minimal Ruster-Unsafe NIF module looks like …<br><br><br><font face="monospace, monospace">#[macro_use]<br>extern crate ruster_unsafe;<br>use ruster_unsafe::*;<br><br>nif_init!(b"ruster_unsafe_minimal\0", None, None, None, None,<br>    nif!(b"just123\0", 0, just123)<br>);<br><br>extern "C" fn just123(_env: *mut ErlNifEnv, _argc: c_int,<br>    _args: *const ERL_NIF_TERM) -> ERL_NIF_TERM {<br>unsafe { enif_make_int(env, 123) }<br>}</font><br><br><br><br>Example of the sort of thing I’m aiming for with Ruster ...<br><br><font face="monospace, monospace">// crack the tuple {1, 2, {3, 4}}<br>let (a,b,(c,d)) = try!(from_term::<(u32,u32,(u32, u32))>(env, term));</font><div><font face="monospace, monospace"><br></font></div></div></div>