Rust wrappers for the Mixer APIs at https://dev.mixer.com/.
sh
git clone https://github.com/Celeo/mixer_rust_wrappers
cd mixer_rust_wrappers
cargo build
Run tests with cargo test
.
If you want code coverage, you can use kcov via
cargo test --no-run && kcov --exclude-pattern=/.cargo target/cov target/debug/mixer_wrappers-*
.
This doesn't work well on CI, so there's no badge.
Add the most recent version to your Cargo.toml and build.
This library is split into 2 parts: a tiny convenience wrapper for the REST API, and a wrapper for the Constellation real-time API.
The REST wrapper is very simple. It basically only does two things:
Create an instance of the REST
struct with
```rust use mixer_wrappers::REST;
let client = REST::new("yourclientid_here"); ```
If you don't know your Client ID, you can get it from Mixer.
Send API requests with
```rust use reqwest::Method;
let resp_text = client.query(Method::GET, "some/endpoint", None, None).unwrap(); ```
The query
function returns a Result, so be sure to handle that appropriately.
This wrapper makes it easy to listen to and send messages to the real-time API. Start with
```rust use mixer_wrappers::ConstellationClient;
let (mut client, receiver) = ConstellationClient::connect("yourclientid_here").unwrap(); ```
Note that the connect
method returns a Result.
You can see a more full example of what do do with these variables in the docs.
This wrapper makes it easy to listen to and send messages to the chat server. Start with
```rust use mixer_wrappers::Chat;
let (mut client, receiver) = Chat::connect("yourclientid_here").unwrap(); ```
Note that the connect
method returns a Result.
You can see a more full example of what do do with these variables in the docs.
There are examples of each methods use in the documentation. For something a little more complete, look at the doc comments on the methods in the code.
For complete examples, see the ./examples
directory.
Licensed under either of
Please feel free to contribute. Please open an issue first (or comment on an existing one) so that I know that you want to add/change something.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.