Rust foundation for the Sovereign browser and its sov:// network. Primary repository: phon-t/Kitawa.
Phase 1 implements cryptographic identities and SOV/1.0 transport. The registry, resolver, privacy firewall, plugins, CLI, and graphical browser are planned in later phases. There is no browser launch command yet.
Install stable Rust and the native linker/build tools for your platform, then run:
cargo check --workspace
cargo test --workspace
cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warningsTests start real QUIC endpoints on ephemeral localhost UDP ports and clean them up automatically. No registry service, TLS CA, or fixed port is required. The first build needs crates.io access. Keep Cargo.lock versioned for reproducibility.
For a self-contained Phase 1 demonstration, start a host, fetch its page over pinned QUIC, print the verified response, and shut down both endpoints:
cargo run -p sov-protocol --example local_fetchThe demo shares an ephemeral owner pin directly with the client. Registry lookup is Phase 2.
sov-crypto: Ed25519 identities, BLAKE3, canonical signed domain records, deterministic self-signed certificates, and registry public-key pinning.sov-protocol: bounded SOV/1.0 frames, authenticated QUIC client/server, static files, and an asynchronousRequestHandlerextension point for dynamic routes.
Read MASTERPLANT.md for the full specification, PROGRESS.md for verified milestones, and docs/SOV-1.0.md for the transport contract.
The caller supplies a trusted owner public key; Phase 2 will obtain this from a verified registry record. Never accept a key merely because a server advertises it. TLS authenticates the pinned key and its handshake proof. Response signatures authenticate status, content type, and body, but are not independently bound to a URL or freshness timestamp; request/response association relies on the authenticated QUIC stream.
The static host serves a dedicated, trusted public directory. Do not put secrets there or let an untrusted local process modify it while serving. Canonical path containment prevents remote traversal and existing symlink escapes; it does not eliminate local filesystem races. Default memory budgets are per frame and concurrency limits multiply them; tune limits to deployment resources.
Phase 1 does not provide anonymity, tracker blocking, a rendering sandbox, registry revocation, or cross-platform release validation. Network peers can observe IP addresses, timing, and traffic sizes. See PROGRESS.md for the platforms actually tested.
Local agent instruction files, editor state, build output, logs, databases, environment secrets, and private key files are ignored. Build plans, source, tests, documentation, and the lockfile belong in the repository.