pb-mapper 0.6.1

Client SDK for exposing and consuming keyed TCP/UDP services through a pb-mapper relay
use std::time::Duration;

use pb_mapper::{Client, ClientConfig};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let server = std::env::var("PB_MAPPER_SERVER")?;
    let credential = std::env::var("MSG_HEADER_KEY")?;
    let ttl_secs = std::env::args()
        .nth(1)
        .and_then(|raw| raw.parse().ok())
        .unwrap_or(3600_u64);

    let client = Client::new(ClientConfig {
        server,
        credential,
        keep_alive: false,
        namespace: None,
    })?;
    let issued = client
        .admin()?
        .issue_key(Duration::from_secs(ttl_secs), Some("sdk".into()))
        .await?;
    println!("key id: {}", issued.key_id);
    println!("credential: {}", issued.credential);
    Ok(())
}