Files
lightcraft/crates/net/Cargo.toml
T
Andrew FrahnandClaude Opus 5.5 5fe7835d8e P1.7: dac-net HTTP(S) client and dac-credentials secret storage
dac-net (L0, MIT, written fresh): rustls + RustCrypto, GET/HEAD/POST/PUT/PATCH/DELETE, JSON, streaming multipart with progress, resumable SHA-256-verified downloads, connect/stall timeouts, cancellation, redirects (credentials never cross origins, no https->http), gzip, HTTP proxy (CONNECT), brand User-Agent, per-connection trust (extra CA, pinned fingerprints, trust-on-first-use hook). Tests use in-process servers only.

dac-credentials (L0): Secret Service over zbus on Linux/BSD; macOS/Windows return Unsupported (no safe pure-Rust path); Argon2id + XChaCha20-Poly1305 encrypted-file fallback. Secret redacts Debug/Display; tests grep captured logs for secrets.

Sources: RFC 9110/9112 (HTTP), RFC 9106 (Argon2), RFC 8439 + XChaCha draft, freedesktop Secret Service API 0.2; own design otherwise.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-10 11:29:22 +11:00

24 lines
841 B
TOML

[package]
name = "dac-net"
version.workspace = true
edition.workspace = true
license.workspace = true
description = "HTTP(S) client in pure Rust (L0): JSON, multipart upload, resumable verified downloads, proxy, per-connection trust"
[dependencies]
dac-brand = { workspace = true }
[lints]
workspace = true
# Native only: on wasm32 the crate is empty (the web build makes no requests through it).
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
log = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
rustls = { version = "0.23", default-features = false, features = ["std", "tls12"] }
rustls-rustcrypto = "0.0.2-alpha"
webpki-roots = "1"
sha2 = { version = "0.10", default-features = false, features = ["std"] }
flate2 = { version = "1", default-features = false, features = ["rust_backend"] }