mirror of
https://github.com/storytold/lightcraft.git
synced 2026-11-10 02:19:57 -06:00
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>
24 lines
841 B
TOML
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"] }
|