New week, new Rust! What’s everyone up to?
On vacation right now, but as soon as I’m back home I’ll be wrapping up a talk proposal for Rust Belt Rust.
I’m also hoping to put some real time into the first draft of my guide to creating and maintaining a quality Rust crate. Kind of like with the Rust FAQ, I plan on seeking out a lot of community feedback once the first draft is done.
I’m going through the Rust in detail article to learn pick up from where I last left it. After finishing that, I plan on applying the concepts to my little load balancer that I’ve been working on.
Adding an Elasticsearch collector to emit and looking at doing something like the log crate does and avoid compiling log calls below the minimum level.
Also made some API changes to elastic_hyper to take
Into <Body> for method bodies instead of
&str. That should make it better to build a body from a buffer
Adding a C API to the regex crate. Progress so far: https://github.com/rust-lang-nursery/regex/blob/capi/regex-capi/include/rure.h and example test cases: https://github.com/rust-lang-nursery/regex/blob/capi/regex-capi/ctest/test.c
I am working on translating Stepanov’s “Elements of Programming” to Rust. I have started with Chapter 6 “Iterators” because I believe that if I can successfully translate this section which involves the most complex type relationships, the rest of the code in the book should be straightforward. These iterators are not ‘safe’ in the way Rust’s standard ones are, as they have no range checks, but they represent the most Generic concept of an iterator, and provide many access patterns. The code is here: https://github.com/keean/elements_in_rust
Rust’s traits provide quite a good match for the C++ “concepts” used in the book, the only real issue so far is that I have not been able to define the Readable trait as intended, due to restrictions on trait specialisation. This leads to the algorithms being less general than their C++ equivalents because they cannot operate on both values and references.
I am close to releasing the alpha version of my library that implements Common Address Redundancy Protocol CARP library (think keepalived) https://github.com/hjr3/carp-rs . Right now the master branch has a mostly C implementation. My, rather large, PR will make it pure rust.
I have to work through some outstanding issues and give it a good once over prior to any testing.