This is a massive update, so expect breaking changes!
New features
Migrated the http request crate from reqwest to ureq by moving the API backend to api_bindium. Here's the important points of this migration:
- The crate is async runtime agnostic. You're free from the chains of tokio.
- You can have both Sync and Async at the same time, or only one, or none (why would you do that...) without surprise compilation errors or runtime errors
api_bindiumis custom made to be lighter than the oldreqwestbackend. No more compiling the entire tokio runtime to print the name of a recording.
Migrated the old this_error monolith to smaller snafu errors. This should help with error debugging and error matching. Those errors include the location and backtraces (Need feature flag) for more information
Breaking changes
- Reworked all the features. I recommend rereading through them all even if you don't have errors!
- Reworked the errors
- Reworked client struct
- Async functions now have a
_asyncsuffix to allow both sync and async to coexists
Upcoming changes
The CAA api will soon be deprecated and moved to its own crate. The reasons being:
- The code needs a full rewrite to remove some severe spaghetti
- It doesn't need to be along side the MB api as it only wants MBIDs as inputs
- It's literally a separate API.
It won't change much from what it currently is as the core fetching will still use api_bindium.
Added
- added id to medias
- add
as_musicbrainz_error - deserialize musicbrainz errors
- include score in more entities
- multiple url fetching
- added
as_musicbrainz_error - Retry on connection resets
- move from this_error to snafu
- make client's reqwest client public
- add ability to set reqwest_client at initialization to client
- add abilty to set user_agent at initialization to client
Fixed
- added SokojId work variant
- removed old buggy tests
- tests
- ci lints
- clippy lints
- chrono reexport
- missing backtrace in as_musicbrainz_error
- Lints and replaced expects with returning a result
Other
- more clippy lints
- (lint) allow_attributes_without_reason
- (lint) allow_attributes
- (lint) std_instead_of_core
- update api_bindium to 0.4.0
- release plz fix 6
- release plz fix 5
- ci release plz fix 4
- releaseplz fix 3
- release plz fix2
- add release-plz
- add release-plz
- Merge pull request #208 from RustyNova016/dependabot/cargo/main/hotpath-0.15.0
- (deps) update hotpath requirement from 0.14.0 to 0.15.0
- (deps) update snafu requirement from 0.8.9 to 0.9.0
- (deps) update hotpath requirement from 0.12.0 to 0.13.0
- (deps) update hotpath requirement from 0.9.0 to 0.12.0
- update readme
- edition
- add features docs
- removed empty config.rs
- bump tracing
- [breaking] move api request to api bindium
- decompose browse request id
- (deps) bump github/codeql-action from 3 to 4
- Merge pull request #160 from RustyNova016/dependabot/github_actions/main/actions/checkout-5
- clippy lints
- cargo fmt
- add more documentation to
new_with_reqwest_client