Note: Mixer has shut down, so this library is useless.
Mixer Rust Wrappers
Rust wrappers for the Mixer APIs at https://dev.mixer.com/.
Building
Requirements
- Git
- A recent version of Rust
Steps
Tests
Run tests with cargo test
.
If you want code coverage, you can use kcov via the included ./get_coverage.sh
script.
This doesn't work well on CI, so there's no badge.
Using
Add the most recent version to your Cargo.toml and build.
This library is split into several parts: a tiny convenience wrapper for the REST API, and a wrapper for the Constellation real-time API.
REST
The REST wrapper is very simple. It basically only does two things:
- Handle sending the 'client-id' header
- Return an error for non-successful HTTP requests (outside of 2XX)
Create an instance of the REST
struct with
use REST;
let client = REST new;
If you don't know your Client ID, you can get it from Mixer.
Send API requests with
use Method;
let resp_text = client.query.unwrap;
The query
function returns a Result, so be sure to handle that appropriately.
Constellation
This wrapper makes it easy to listen to and send messages to the real-time API. Start with
use ConstellationClient;
let = connect.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.
Chat
This wrapper makes it easy to listen to and send messages to the chat server. Since the chat server doesn't have a specific, constant endpoint, connecting is a bit more involved.
Start with
use ;
let api = REST new;
let chat_helper = api.chat_helper;
let channel_id = chat_helper.get_channel_id.unwrap;
let endpoints = chat_helper.get_servers.unwrap;
let = connect.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.
Examples
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.
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
Contributing
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.