[rust-dev] My early endeavours in Rust

Zack Corr zackcorr95 at gmail.com
Wed Jan 11 18:37:20 PST 2012


G'day,
Firstly, I absolutely love Rust so far. You're doing great work. Rust
programs run fast, almost akin to C speeds. I love the syntax too, it's
clear and simplistic. The only dislike (actually more of an annoyance
rather than a dislike) I have so far is some of the standard APIs are a bit
inconsistent from module to module (eg. some times there's a function such
as `create` but other times `mk_x`, sometimes there's `from_str` and
sometimes there's just `str`) but I understand that this is really early
before release so that is not important at all. I've made a few little
things with rust that I thought I would share in-case someone would want
them.

I've made Cairo bindings for Rust <https://github.com/z0w0/rusty-cairo>.
It's a lightning faster vector graphics library, allowing you to render it
into (only PNG at the moment) images, SVG and PDF files (I also added .ttf
font loading via FreeType). Due to me wanting to get to know rust, my love
for libcairo and rust's close similarity to C, it felt only right to make
it. At some point in time I may add a utility into it so that you can
render into GUI windows, so you could make a 2d game with it. I'll add this
to cargo-central once it comes.

I've made Mersenne Twister and linear congruential random number generators
for Rust <https://github.com/z0w0/rusty-rand>. They were just a test, as I
wanted to see how the native (C) ISAAC generator would run against
generators written in Rust, and I really wanted a generator that could be
seeded by the user (I might be missing something here, there might be a way
to do this with the std::rand one already). Of course, the results are just
like you would guess running 100 tests: native ISAAC comes out first with
around 40.1k nano seconds, LCG second with around 63.9k ns, and MT19937
comes last with 76.2k ns. Note: this is on my pretty terrible laptop, it
might be a bit more accurate on others, and it uses a cheap benchmarking
method.

And finally, I added ipv6 parsing and formatting to the net
library<https://gist.github.com/1598193>.
It was just for fun, and it seems to work on all of the addresses I tried.
Note: It doesn't format into the substitution format of addresses, because
I thought it would be better to keep it formal.

Anyway, thanks for the hard work [continuing to make]/[making] Rust, I
absolutely love it and I certainly prefer it over the other compiled
languages.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/rust-dev/attachments/20120112/0c078cba/attachment.html>


More information about the Rust-dev mailing list