I’m thrilled to announce Serde 0.7.0! It’s been a long time coming, and has a number of long awaited new features, breaking changes, and other notable changes. Serde 0.6.x is now deprecated, and while I’ll try to keep serde_codegen and serd...
As I mentioned in the last part, Stateful has some challenges it needs to overcome in order to add new and exciting control flow mechanisms to Rust. While we don’t get access to any of the cool analysis passes inside the Rust compiler, Stat...
AKA: Erick Does More Horrible Things to Rust Hello internet! It’s been too long. Not only are the Rust Meetups back up and running, it’s time for me to start back to blogging. For the past couple months, I’ve been working on a new syntax ex...
One of the coolest things about the Rust typesystem is that you can use it to make unsafe bindings safe. Read all about it in the Rustonomicon. However, it can be really quite easy to slip in a bug where you’re not actually making the guara...
I just pushed up serde 0.3.1 to crates.io, which is now compatible with beta! serde_macros 0.3.1, however still requires nightly. But this means that if you implement the all the traits using stable features, then any users of serde should...
I use and love syntax extensions, and I’m planning on using them to simplify down how one interacts with a system like serde. Unfortunately though, to write them you need to use Rust’s libsyntax, which is not going to be exposed in Rust 1.0...
Wow, home stretch! Here’s the rest of the series if you want to catch up: part 1, part 2, part 2.1, part 2.2, and part 3. Overall serde’s approach for serialization works out pretty well. One thing I forgot to include in the last post was t...
I’m really supposed to be working on my serialization series, but I just saw a neat new library that was open sourced by Yahoo a couple days ago called MDBM on Hacker News. I know nothing about the library, but there are some really neat cl...
There’s been a long digression over the past month (possible kernel bugs, benchmarking Writers, and don’t believe in magic, folks), but I’m back into serialization. Woo! Here’s part 1 part 2, part 2.1, and part 2.2 if you need to catch up....
Edit: you can find all the code in this post here, and I filed 19281 for the regression I mentioned at the end of the post. Low level benchmarking is confusing and non-intuitive. The end. Or not. Whatever. So I’m trying to get my implement-...
A slight diversion from my serialization series. Last week, strcat submitted #18885 pull request, which adds support for using a Vec as a Writer. Over the weekend I submitted #18980, which allows a &[u8] to be used as a Reader. Overall a pr...
Back to the benchmarks! I got some great comments on reddit, So I wanted to do another post to update my numbers. Here’s what I changed: I wasn’t consistent on whether or not the serialization benchmarks included Some tests are including th...
After part 2 I received a couple requests to add in a couple other rust serialization libraries. So one thing led to another, and now I’ve got a benchmark suite I’m calling rust-serialization-benchmarks. Really creative name, eh? This inclu...
As I said in the last post, Rust’s serialize library, specifically serialize::json is pretty slow. Back when I started this project a number of months ago, I wanted to benchmark to see how we compared to some other languages. There are a bu...