<div dir="ltr">thanks! <br></div><br><div class="gmail_quote">On Wed, May 13, 2015 at 4:50 PM Daniel Goertzen <<a href="mailto:daniel.goertzen@gmail.com">daniel.goertzen@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><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" target="_blank">https://github.com/goertzenator/ruster_unsafe_demo</a><br>docs: <a href="http://goertzenator.github.io/ruster_unsafe/ruster_unsafe/index.html" target="_blank">http://goertzenator.github.io/ruster_unsafe/ruster_unsafe/index.html</a><br>source: <a href="https://github.com/goertzenator/ruster_unsafe" target="_blank">https://github.com/goertzenator/ruster_unsafe</a><br><br>Ruster: <a href="https://github.com/goertzenator/ruster" target="_blank">https://github.com/goertzenator/ruster</a><br>Rust: <a href="http://www.rust-lang.org/" target="_blank">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>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</blockquote></div>