Files
zeekay 31ff4e7a31 The crate job reads KMS from outside the checkout, as 1.1.9
cargo publish refused v1.1.8: the KMS helper it downloaded sat in the
working tree as an uncommitted file.

Claude-Session: https://claude.ai/code/session_01M8RoubcPN71KgJuZ8LdBUL
2026-10-15 04:55:38 -07:00

64 lines
2.1 KiB
TOML

[workspace]
members = [".", "python"]
[package]
name = "zapd"
version = "1.1.9"
edition = "2021"
rust-version = "1.81"
description = "The ZAP router — embedded in every ZAP process; one per user login, elected by lock"
license = "MIT OR Apache-2.0"
repository = "https://github.com/zap-proto/zapd"
keywords = ["zap", "zapd", "router", "broker", "rpc"]
categories = ["network-programming"]
# The router is a library: every process that speaks ZAP embeds it and the
# lock elects one of them. The `zapd` binary is the operator's tool — `pair`
# and `ls` — and never serves.
[lib]
path = "src/lib.rs"
[[bin]]
name = "zapd"
path = "src/main.rs"
[dependencies]
# The router is schema-agnostic: it never parses a payload, so it depends on NO
# ZAP schema crate and no capnp. It moves opaque ZAP frames on tokio alone.
tokio = { version = "1", features = ["rt-multi-thread", "net", "io-util", "sync", "time", "macros"] }
tracing = "0.1"
directories = "5"
# The browser door: a loopback WebSocket, because a browser extension can open
# nothing else. Handshake only — no TLS, no client connector in the router.
tokio-tungstenite = { version = "0.30", default-features = false, features = ["handshake"] }
futures-util = { version = "0.3", default-features = false, features = ["sink", "std"] }
# Pairing: HMAC-SHA256 challenge-response over a 32-byte token; the token
# never crosses the wire.
hmac = "0.13"
sha2 = "0.11"
getrandom = "0.4"
# Unix: the fcntl(2) record lock (the election), getuid(2) and gethostname(2).
[target.'cfg(unix)'.dependencies]
libc = "0.2"
# Windows: LockFileEx (the election), the pipe's server pid, SIDs and DACLs.
[target.'cfg(windows)'.dependencies]
windows-sys = { version = "0.61", features = [
"Win32_Foundation",
"Win32_Security",
"Win32_Security_Authorization",
"Win32_Storage_FileSystem",
"Win32_System_IO",
"Win32_System_Pipes",
"Win32_System_Threading",
] }
[dev-dependencies]
tokio = { version = "1", features = ["rt-multi-thread", "macros", "time", "net", "io-util"] }
[profile.release]
lto = true
codegen-units = 1
strip = true