12 releases (breaking)
0.10.1 | Jul 23, 2020 |
---|---|
0.10.0 | Sep 2, 2019 |
0.9.0 | Sep 2, 2019 |
#17 in #mixer
62KB
1K
SLoC
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
git clone https://github.com/Celeo/mixer_rust_wrappers
cd mixer_rust_wrappers
cargo build
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 mixer_wrappers::REST;
let client = REST::new("your_client_id_here");
If you don't know your Client ID, you can get it from Mixer.
Send API requests with
use reqwest::Method;
let resp_text = client.query("GET", "some/endpoint", None, None).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 mixer_wrappers::ConstellationClient;
let (mut client, receiver) = ConstellationClient::connect("your_client_id_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.
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 mixer_wrappers::{ChatClient, REST};
let api = REST::new(&client_id);
let chat_helper = api.chat_helper();
let channel_id = chat_helper.get_channel_id("your_username_here").unwrap();
let endpoints = chat_helper.get_servers(channel_id).unwrap();
let (mut client, receiver) = Chat::connect(endpoints[0], "your_client_id_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.
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.
Dependencies
~27–37MB
~694K SLoC