reliably 0.3.7

A fully-featured real-time Rust SDK for Ably pubsub
Documentation
use std::env;

use serde::Serialize;

use reliably::Result;

#[tokio::main]
async fn main() -> Result<()> {
    let key = env::var("ABLY_API_KEY").expect("ABLY_API_KEY env var must be set");

    let client = reliably::Rest::new(&key)?;

    let channel = client.channels().get("rust-example");

    println!("Publishing a string");
    match channel
        .publish()
        .name("string")
        .string("a string")
        .send()
        .await
    {
        Ok(_) => println!("String published!"),
        Err(err) => println!("Error publishing message: {}", err),
    }

    println!("Publishing a JSON object");
    #[derive(Serialize)]
    struct Point {
        x: i32,
        y: i32,
    }
    let point = Point { x: 3, y: 4 };
    match channel.publish().name("json").json(point).send().await {
        Ok(_) => println!("JSON object published!"),
        Err(err) => println!("Error publishing message: {}", err),
    }

    println!("Publishing binary data");
    let data = vec![0x01, 0x02, 0x03, 0x04];
    match channel.publish().name("binary").binary(data).send().await {
        Ok(_) => println!("Binary data published!"),
        Err(err) => println!("Error publishing message: {}", err),
    }

    Ok(())
}