MusicBrainz rust is a utility crate for the the MusicBrainz API.


This is still WIP.

you may be looking for : - Api documention - The crate

Example :

All queries look like this one:

```rust extern crate musicbrainz_rs;

use musicbrainzrs::model::artist; use musicbrainzrs::model::artist::*; use musicbrainz_rs::QueryAble;

fn main() { let nirvana = Artist::fetch() .id("5b11f4ce-a62d-471e-81fc-a69a8278c7da") .execute();

assert_eq!(nirvana.unwrap().name, "Nirvana".to_string());

} ```

You can also use includes to get more detail about a resource :

```rust

extern crate musicbrainz_rs;

use musicbrainzrs::model::artist; use musicbrainzrs::model::artist::*; use musicbrainz_rs::QueryAble;

fn main() { let johnleehooker = Artist::fetch() .id("b0122194-c49a-46a1-ade7-84d1d76bd8e9") .include(artist::Include::Recordings) .execute() .unwrap();

let recordings = john_lee_hooker.recordings.unwrap();

assert!(recordings
    .iter()
    .any(|recording| recording.title == "A Little Bit Higher"));

} ```

You can set your application user-agent as recommended in the musicbrainz documentation :

```rust fn main() { musicbrainzrs::config::setuseragent("myawesome_app/1.0");

let nirvana = Artist::fetch()
    .id("5b11f4ce-a62d-471e-81fc-a69a8278c7da")
    .execute();

assert_eq!(nirvana.unwrap().name, "Nirvana".to_string());

} ```

To see what is currently implemented in the crate you can look at the tests directory.

You can run examples with cargo run --example example_name

Credits

Most of this crate documentation is taken from the official MusicBrainz doc, thanks to the MetaBrainz Foundation and its sponsors and supporters. Cover Art provided by the Cover Art Archive.