Rust CloudI

20 views
Skip to first unread message

Samuel Rose

unread,
Jun 30, 2016, 2:49:38 PM6/30/16
to CloudI Questions
Any interest in creating a Rust <-> CloudI interface?

I am new to CloudI, new to Rust. However, I have familiarity with Erlang/Elixir. 

I am thinking about scenarios where it would be useful to hand number crunching, image manipulation, etc to Rust in a CloudI-based system

Michael Truog

unread,
Jun 30, 2016, 7:39:21 PM6/30/16
to cloudi-q...@googlegroups.com
It would be good to have a CloudI API implementation for Rust though I
haven't had a chance to pursue it yet. Getting a Rust implementation of
the Erlang binary term format for messages sent to the Erlang VM is the
main amount of work and that should already exist. The additional
amount of logic is easy to see in the pure-python or pure-ruby modules
for the CloudI API
(https://github.com/CloudI/CloudI/blob/develop/src/api/python/cloudi.py
and https://github.com/CloudI/CloudI/blob/develop/src/api/ruby/cloudi.rb).

Samuel Rose

unread,
Jul 1, 2016, 8:13:13 AM7/1/16
to CloudI Questions


On Thursday, June 30, 2016 at 7:39:21 PM UTC-4, Michael Truog wrote:
On 06/30/2016 11:49 AM, Samuel Rose wrote:
> Any interest in creating a Rust <-> CloudI interface?
>
> I am new to CloudI, new to Rust. However, I have familiarity with
> Erlang/Elixir.
>
> I am thinking about scenarios where it would be useful to hand number
> crunching, image manipulation, etc to Rust in a CloudI-based system
>



Thanks for your response Michael!

 
It would be good to have a CloudI API implementation for Rust though I
haven't had a chance to pursue it yet.  Getting a Rust implementation of
the Erlang binary term format for messages sent to the Erlang VM is the
main amount of work and that should already exist.  

Is this referring to converting messages to "BERT" protocol? Like what is done here for instance?: https://github.com/seriyps/rust-erl-ext

 
The additional
amount of logic is easy to see in the pure-python or pure-ruby modules
for the CloudI API
(https://github.com/CloudI/CloudI/blob/develop/src/api/python/cloudi.py
and https://github.com/CloudI/CloudI/blob/develop/src/api/ruby/cloudi.rb).



Thanks again, I will read and learn from these
 

Michael Truog

unread,
Jul 1, 2016, 1:32:52 PM7/1/16
to cloudi-q...@googlegroups.com


On 07/01/2016 05:13 AM, Samuel Rose wrote:


On Thursday, June 30, 2016 at 7:39:21 PM UTC-4, Michael Truog wrote:
On 06/30/2016 11:49 AM, Samuel Rose wrote:
> Any interest in creating a Rust <-> CloudI interface?
>
> I am new to CloudI, new to Rust. However, I have familiarity with
> Erlang/Elixir.
>
> I am thinking about scenarios where it would be useful to hand number
> crunching, image manipulation, etc to Rust in a CloudI-based system
>



Thanks for your response Michael!

 
It would be good to have a CloudI API implementation for Rust though I
haven't had a chance to pursue it yet.  Getting a Rust implementation of
the Erlang binary term format for messages sent to the Erlang VM is the
main amount of work and that should already exist.  

Is this referring to converting messages to "BERT" protocol? Like what is done here for instance?: https://github.com/seriyps/rust-erl-ext

https://github.com/seriyps/rust-erl-ext looks like a good dependency for the Erlang binary term format.  I generally check to make sure the source code is under an Apache, BSD, or MIT license (i.e., something that is not GPL), and this is under the Apache license, so that is good.  This dependency isn't spread among many files and isn't attempting to use C or C++ for the processing, so this should be a good approach for a pure-Rust CloudI API.  Generally, the pure programming language CloudI API implementations are important to make sure all the programming language features work (exceptions and/or concurrency, may not behave well with C/C++ usage, and the pure approach can avoid problems), i.e., pure implementations are easier to trust and that is important for fault-tolerance.



 
The additional
amount of logic is easy to see in the pure-python or pure-ruby modules
for the CloudI API
(https://github.com/CloudI/CloudI/blob/develop/src/api/python/cloudi.py
and https://github.com/CloudI/CloudI/blob/develop/src/api/ruby/cloudi.rb).



Thanks again, I will read and learn from these

Just ask questions as necessary.  Those python and ruby implementations provide the must succinct examples, so while it isn't documenting the process of creating the CloudI API, it should be the best representation of the necessary logic.

 
--
You received this message because you are subscribed to the Google Groups "CloudI Questions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cloudi-questio...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages