# cc.me — Rust client
A Rust port of the [cc.me](https://cc.me/) client library and the `cc-me`
forward CLI. It mirrors the canonical JavaScript implementation in
`../js/index.js` and follows the wire protocol in `../PROTOCOL.md`. The Rust
server (`../../src/main.rs`) is the source of truth for the wire format; the
crypto crates here are pinned to the same versions the server locks so the
sealed-box decrypt path interoperates with the server's `PublicKey::seal`.
## Library
```rust
use cc_me::{CcMeClient, ListOptions, private_key};
use std::path::Path;
// Load or create a 32-byte Ed25519 seed (base64url, mode 0600 on unix).
let key = private_key(Some(Path::new("~/.cc-me.key")))?;
let client = CcMeClient::new(key, None)?; // None => https://cc.me/
// Addressable URLs.
println!("{}", client.inbox_url(&ListOptions::default()));
println!("{}", client.slack_url());
println!("{}", client.meta_url(Some("verify-token")));
println!("{}", client.discord_url("APP_PUBLIC_KEY"));
// Claim, forward, ack.
let batch = client.claim(&ListOptions { limit: Some(10), poll: true, ..Default::default() })?;
for delivery in &batch.requests {
println!("{} {} {:?}", delivery.method, delivery.path, delivery.text());
}