[erlang-questions] [ANN] Ruster-Unsafe and Ruster

Benoit Chesneau <>
Thu May 14 19:10:46 CEST 2015


thanks!

On Wed, May 13, 2015 at 4:50 PM Daniel Goertzen <>
wrote:

> 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.
>
> 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.
>
> Ruster-Unsafe
> demo: https://github.com/goertzenator/ruster_unsafe_demo
> docs: http://goertzenator.github.io/ruster_unsafe/ruster_unsafe/index.html
> source: https://github.com/goertzenator/ruster_unsafe
>
> Ruster: https://github.com/goertzenator/ruster
> Rust: http://www.rust-lang.org/
>
> A minimal Ruster-Unsafe NIF module looks like …
>
>
> #[macro_use]
> extern crate ruster_unsafe;
> use ruster_unsafe::*;
>
> nif_init!(b"ruster_unsafe_minimal\0", None, None, None, None,
>     nif!(b"just123\0", 0, just123)
> );
>
> extern "C" fn just123(_env: *mut ErlNifEnv, _argc: c_int,
>     _args: *const ERL_NIF_TERM) -> ERL_NIF_TERM {
> unsafe { enif_make_int(env, 123) }
> }
>
>
>
> Example of the sort of thing I’m aiming for with Ruster ...
>
> // crack the tuple {1, 2, {3, 4}}
> let (a,b,(c,d)) = try!(from_term::<(u32,u32,(u32, u32))>(env, term));
>
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20150514/4168b2aa/attachment.html>


More information about the erlang-questions mailing list