24 days of Rust - conclusion
This article marks the end of the second edition of 24 days of Rust. I hope you enjoyed it and maybe found inspiration for a project or two. I sure did :-) Some of the libraries I wrote about are familiar to almost entire Rust community. Some are fairly obscure but I find them interesting. Regardless, I learned a lot just by writing, trying to come up with meaningful code examples and editing my drafts. This was my intention all along - to learn something for myself while contributing these articles to the community.
A return to writing
I started thinking about doing this series again some time around May-June,
when I heard about diesel
. A few weeks later I attended PolyConf in Poznań
and had the pleasure of speaking to diesels
's author - Sean Griffin. That
convinced me to write an early draft of an article on diesel
.
Before December started, I had compiled a list of crates, mostly doing this:
- I use X for doing Y in Python, is there anything like that for Rust?
- Or: that thing was a few weeks ago in Crate of the Week, let me see... ooh, it would be fun to use, let's write an example to familiarize myself with the API.
- Or: this is an entirely new territory for me; I can't think about a simple example now, but I'll come back to it later.
I ended up with a Trello board full of ideas, partial examples and several snippets of prose. What was left was just drawing the rest of the effing owl ;-)
TILWW24DOR
Or, Things I Learned While Writing 24 Days Of Rust:
- I missed a few cool Cargo subcommands, for example:
cargo edit
,cargo check
orcargo modules
- it's possible to run benchmarks on stable Rust with
bencher
- I actually understood what
lazy_static
does - you can pattern match in function arguments
- bow ties are cool
- there's a crate for building arbitrary binary data -
test-assembler
- habitat is built with Rust
This is only a partial selection of valuable information I picked from replies at /r/rust, Twitter messages etc. I'm putting it here in hope it may be useful to someone else as well.
Feedback
The articles received a lot of positive feedback from the Rust community and I'm very grateful for that. You are fantastic! Here are some replies from Reddit, Twitter etc.:
Thanks for these great blog posts. Each one was extremely clear and a very good intro to the crate and its purpose. As a beginner, this was a boon to discover some bits of the Rust ecosystem.
Hey, I just wanted to say thanks for you taking the time to write these up. They're quite fun to read, and I've even learned a thing or two :)
It seems that your parsing logic is a little bit broken – the extendend length and mask fields are optional, and you're parsing them unconditionally – check out the examples from the RFC. Correctness aside, having an example on conditional parsing in nom would be a nice addition to the post also! Anyway, thanks for great article!
This series is incredible. ❤
Now I'm thinking about how I could write some Rust code to automate my various workflows... Awesome blog 👍
I really like that this series shows how to use some less-talked about Rust libraries to write actual, potentially useful software.
Thank you all! This motivates me to write more. (And yes, I'll try to fix the parsing example...)
24 days of Rust 2016 - archive
- Day 1 - cargo subcommands
- Day 2 - hound
- Day 3 - rayon
- Day 4 - structured logging
- Day 5 - environment variables
- Day 6 - derive_builder
- Day 7 - static initialization
- Day 8 - serde
- Day 9 - winreg
- Day 10 - nom, part 1
- Day 11 - nom, part 2
- Day 12 - clap
- Day 13 - zip and lzma compression
- Day 14 - Cursive
- Day 15 - tera
- Day 16 - git2
- Day 17 - diesel
- Day 18 - error_chain
- Day 19 - leftpad
- Day 20 - reqwest
- Day 21 - app_dirs and preferences
- Day 22 - lettre
- Day 23 - built with Rust
- Day 24 - conclusion
What's next?
Hopefully I'll get back to more regular writing. Now that I'm more comfortable
with Rust, I hope to use it for some serious project and not just
an article's worth of example. The Rocket web framework
was just announced and it looks great, I would like to try it out soon.
There's also a growing ecosystem of
Machine Learning libraries
and this is something I'm interested in as well. Or maybe play with
tokio
for async stuff? There's a lot of
ideas!
Learning resources
The 24 days of Rust series may be over for this year, but the Rust journey continues. It's dangerous to go alone, so here are a few links:
- The Rust Programming Language - the official book by the Rust team
- Second edition of the above book - in progress as of December 2016, but a lot has changed. Worth reading even if you're familiar with the first edition
- Rust by Example - you can read it alongside the official book if you like more example-oriented approach
- Rust Essentials - a short book from Packt about basic concepts of Rust. It even mentions 24 days of Rust!
- users.rust-lang.org - a discussion forum for Rust programmers
- The Rust Community
- This Week in Rust
- into_rust() - screencasts for learning Rust
- rust-learning which mentions probably all of the above
And here's a selection of Rust-related blogs worth following:
- Andrew Gallant's Blog
- Featherweight Musings
- In Pursuit of Laziness
- Jeff Parsons
- Huon Wilson
- Llogiq on stuff
- Mozilla Hacks and the Servo blog
- Niko Matsakis
- Steve Klabnik
And with that, it's time to really finish writing for today.
Rusty Holidays to you all!
Photo by bvi4092 and shared under the Creative Commons Attribution 2.0 Generic License. See https://www.flickr.com/photos/bvi4092/14253264351/