docs(sdk): add comprehensive SDK documentation and wire format reference
Covers all official SDKs (Rust, Go, Python, TypeScript, C FFI), the v2 wire format with method ID tables, authentication flow, and a build-your-own-SDK guide with implementation checklist.
This commit is contained in:
63
docs/sdk/rust.md
Normal file
63
docs/sdk/rust.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# Rust SDK
|
||||
|
||||
The Rust client is the reference implementation, located in `crates/quicproquo-client/`.
|
||||
|
||||
## Installation
|
||||
|
||||
Add to your `Cargo.toml`:
|
||||
|
||||
```toml
|
||||
[dependencies]
|
||||
quicproquo-client = { path = "crates/quicproquo-client" }
|
||||
```
|
||||
|
||||
## Connection
|
||||
|
||||
The Rust client connects directly over QUIC with Cap'n Proto RPC:
|
||||
|
||||
```rust
|
||||
use quicproquo_client::{cmd_health, cmd_login, cmd_send, connect_node};
|
||||
|
||||
// Health check
|
||||
cmd_health("127.0.0.1:5001", &ca_cert_path, "localhost").await?;
|
||||
|
||||
// Login via OPAQUE
|
||||
cmd_login(
|
||||
"127.0.0.1:5001", &ca_cert_path, "localhost",
|
||||
"alice", "password123",
|
||||
None, // identity_key_hex
|
||||
Some(&state_path), // state persistence
|
||||
None, // state_password
|
||||
).await?;
|
||||
```
|
||||
|
||||
## Key Features
|
||||
|
||||
- Full MLS (RFC 9420) group encryption
|
||||
- Hybrid post-quantum KEM (X25519 + ML-KEM-768)
|
||||
- OPAQUE authentication with zeroizing credential storage
|
||||
- SQLCipher local state with Argon2id key derivation
|
||||
- Sealed sender metadata protection
|
||||
- v2 QUIC + Protobuf transport (via `quicproquo-sdk` crate)
|
||||
|
||||
## v2 SDK Crate
|
||||
|
||||
The `quicproquo-sdk` crate provides the higher-level v2 API:
|
||||
|
||||
```rust
|
||||
use quicproquo_sdk::QpqClient;
|
||||
|
||||
let client = QpqClient::connect("127.0.0.1:5001", &tls_config).await?;
|
||||
let health = client.health().await?;
|
||||
```
|
||||
|
||||
## Crate Structure
|
||||
|
||||
| Crate | Purpose |
|
||||
|---|---|
|
||||
| `quicproquo-core` | Crypto primitives, MLS, hybrid KEM |
|
||||
| `quicproquo-proto` | Protobuf + Cap'n Proto generated types |
|
||||
| `quicproquo-rpc` | QUIC RPC framework (framing, dispatch) |
|
||||
| `quicproquo-sdk` | High-level client SDK |
|
||||
| `quicproquo-client` | CLI/TUI client application |
|
||||
| `quicproquo-ffi` | C FFI bindings |
|
||||
Reference in New Issue
Block a user