Skip to content

Redo the library

Dean requested to merge zeyla:library-rework into master

Created by: zeyla

This commit essentially redoes the library from the ground up, providing an idiomatic API wrapper along with hyper and reqwest HTTP client implementations.

The library provides implementations in the form of traits, to allow re-use of a user's client while also being able to use their client and not maintaining the library's own HTTP client wrapper (or oneshot clients that are not re-used).

reqwest and hyper features are feature-flagged, with the reqwest-support or hyper-support features, respectively, needing to be implemented for compilation of them.

This can be enabled like so:

[dependencies.owo]
default-features = false
features = ["hyper-support"]
git = "https://github.com/whats-this/owo.rs"

This will not compile the default client (reqwest) support, and will compile hyper support.

Documentation, doctests, example binaries, and API-hitting tests have been provided, allowing for automated CI for the first three test types, while allowing developer-specified API-hitting testing via cargo test -- --ignored. Essentially, tests that hit the API are not ran by CI.

Lastly, responses are parsed and deserialized by the library via the use of the serde framework, providing mapped structs for user ease-of-use.

Edited note: reqwest's master branch is depended on due to its multipart implementation not being released as a version yet, once it is then the library can rely on a version.

Merge request reports