Contributor
Ritiek Malhotra

Complete Rust binding for the MusicBrainz API


Mentors
Paul Delafosse
Organization
MetaBrainz Foundation Inc

MusicBrainz has client libraries for various programming languages such as C++, Python, Java, Go and more. However, we're still missing out on a proper client library for the Rust programming language. There previously have been attempts on creating such a client library, such as the musicbrainz_rust (not being maintained at the moment) and the musicbrainz_rs projects, but none of these attempts entirely wrap around the MusicBrainz Web-API.

As a part of GSoC'21, I propose to implement further functionality in musicbrainz_rs, a Rust client library which has proper automated tests and has been carefully documented along with examples. However, it still misses out on covering some important functionality from the Web-API, namely the Search feature and the CoverArt endpoint. There are also further possible improvements that could be made, such as gracefully handling rate-limiting from the MusicBrainz servers by performing auto-retries on failed queries in the library.