Maintaining RSpotify

I sharpened my Rust skills by maintaining RSpotify, a crate providing complete bindings for Spotify's Web API. My work includes reducing bloat, adding features and improving its performance.

Preview image, with a screenshot of Godbolt's compiler explorer

1.  Why you shouldn't obsess about Rust "features"

Rust makes it very easy to express conditional compilation, especially thanks to Cargo “features”. They’re well integrated into the language and are very easy to use. But one thing I’ve learned by maintaining RSpotify (a library for the Spotify AP...

Preview image, with a diagram of rspotify's architecture

2.  Designing an API Client in Rust: New RSpotify Version a Year Later

This article in the Rspotify series describes my journey of basically rewriting the entirety of this Rust library; around 13 months of work (in my free time), starting at September 2020, up until October 2021. I think this has given me enough expe...

Preview image, with Ferris lost in complicated Rust errors

3.  The bane of my existence: Supporting both async and sync code in Rust

Imagine you want to create a new library in Rust. All it does is wrap up a public API that you need for something else, like the Spotify API or maybe a database like ArangoDB. It’s not rocket science, you aren’t inventing something new or dealing ...