mixer_wrappers 0.7.0

Wrappers around the Mixer APIs
Documentation

Mixer Rust Wrappers

CircleCI Crates.io Docs.rs

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 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.

Using

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.

REST

The REST wrapper is very simple. It basically only does two things:

  1. Handle sending the 'client-id' header
  2. 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(Method::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. Start with

use mixer_wrappers::Chat;

let (mut client, receiver) = Chat::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.

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

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.