mirror of
https://github.com/zap-proto/zip.git
synced 2026-10-19 15:38:57 +00:00
An op is an async fn. It may take &zip::Cx (request headers; the answer's status, headers and trailers) and a zip::Body read as it arrives, and may answer zip::Sse or zip::Body, each chunk written as the op yields it. A client that leaves drops the op's stream. The blocking std::net door is gone: HTTP/1.1 keep-alive and h2c on one port (hyper_util auto), graceful shutdown bounded by a grace. The ZAP door runs on tokio and streams with zap-proto/http's head, data and end frames. Wire names are serde's: the derive reads rename, rename_all, skip and with, and the hand-rolled JSON is deleted. The info manifest comes out byte for byte as before. No zapgen emits Rust, so the crate never built; the frame codec is written in zap.rs and pinned to frames Go wrote. The length prefix is big-endian, as zap-proto/http's transport writes it. examples/stream is a JSON op, an SSE op with a trailer and a byte relay, tested over raw HTTP/1.1, h2c and ZAP sockets. Claude-Session: https://claude.ai/code/session_01SCPMGSQsLNF2YtHFL4bwyp
504 lines
12 KiB
TOML
504 lines
12 KiB
TOML
# This file is automatically @generated by Cargo.
|
|
# It is not intended for manual editing.
|
|
version = 4
|
|
|
|
[[package]]
|
|
name = "atomic-waker"
|
|
version = "1.1.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
|
|
|
|
[[package]]
|
|
name = "bytes"
|
|
version = "1.12.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04"
|
|
|
|
[[package]]
|
|
name = "equivalent"
|
|
version = "1.0.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
|
|
|
|
[[package]]
|
|
name = "errno"
|
|
version = "0.3.14"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
|
|
dependencies = [
|
|
"libc",
|
|
"windows-sys",
|
|
]
|
|
|
|
[[package]]
|
|
name = "fnv"
|
|
version = "1.0.7"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
|
|
|
|
[[package]]
|
|
name = "futures-channel"
|
|
version = "0.3.34"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "b1f9e3d69d39e4862ffed03ed071a76f9a13ba1d9109d355b0f0aa6b15e393c4"
|
|
dependencies = [
|
|
"futures-core",
|
|
]
|
|
|
|
[[package]]
|
|
name = "futures-core"
|
|
version = "0.3.34"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e"
|
|
|
|
[[package]]
|
|
name = "futures-sink"
|
|
version = "0.3.34"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "1944426bf7d03f1d14f708785e4b33efd750b36d48a157b836b3efc15ede8e1d"
|
|
|
|
[[package]]
|
|
name = "futures-task"
|
|
version = "0.3.34"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd"
|
|
|
|
[[package]]
|
|
name = "futures-util"
|
|
version = "0.3.34"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc"
|
|
dependencies = [
|
|
"futures-core",
|
|
"futures-task",
|
|
"pin-project-lite",
|
|
"slab",
|
|
]
|
|
|
|
[[package]]
|
|
name = "h2"
|
|
version = "0.4.20"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "7d29020232d6aa3fb1daca64c1127cf662cf97f254ae16c18c05b8ab635fc118"
|
|
dependencies = [
|
|
"atomic-waker",
|
|
"bytes",
|
|
"fnv",
|
|
"futures-core",
|
|
"futures-sink",
|
|
"http",
|
|
"indexmap",
|
|
"slab",
|
|
"tokio",
|
|
"tokio-util",
|
|
"tracing",
|
|
]
|
|
|
|
[[package]]
|
|
name = "hashbrown"
|
|
version = "0.17.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
|
|
|
|
[[package]]
|
|
name = "http"
|
|
version = "1.5.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "918d3568bebf352712bc2ef3d46a8bcf1a75b373be6539de198e9105cbbf9ce0"
|
|
dependencies = [
|
|
"bytes",
|
|
"itoa",
|
|
]
|
|
|
|
[[package]]
|
|
name = "http-body"
|
|
version = "1.1.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ca2a8f2913ee65f60facd6a5905613afaa448497a0230cc41ce022d93290bc2c"
|
|
dependencies = [
|
|
"bytes",
|
|
"http",
|
|
]
|
|
|
|
[[package]]
|
|
name = "http-body-util"
|
|
version = "0.1.5"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "23169fe34a5fbcdd3f3862e78fb9b6fccd5f02a6dc6f732547005d45631ce71c"
|
|
dependencies = [
|
|
"bytes",
|
|
"futures-core",
|
|
"http",
|
|
"http-body",
|
|
"pin-project-lite",
|
|
]
|
|
|
|
[[package]]
|
|
name = "httparse"
|
|
version = "1.10.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
|
|
|
|
[[package]]
|
|
name = "httpdate"
|
|
version = "1.0.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
|
|
|
|
[[package]]
|
|
name = "hyper"
|
|
version = "1.12.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "2c3e324da4c95177d6291d4c8730197c0d1822f8a9766814a4a44fa5ab797c9c"
|
|
dependencies = [
|
|
"atomic-waker",
|
|
"bytes",
|
|
"futures-channel",
|
|
"futures-core",
|
|
"h2",
|
|
"http",
|
|
"http-body",
|
|
"httparse",
|
|
"httpdate",
|
|
"itoa",
|
|
"pin-project-lite",
|
|
"smallvec",
|
|
"tokio",
|
|
"want",
|
|
]
|
|
|
|
[[package]]
|
|
name = "hyper-util"
|
|
version = "0.1.21"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ddc03d96684f9226b8a787cdb71488417b53ab5ea8fdb1dac946cb9431cc8bff"
|
|
dependencies = [
|
|
"bytes",
|
|
"http",
|
|
"http-body",
|
|
"hyper",
|
|
"pin-project-lite",
|
|
"tokio",
|
|
]
|
|
|
|
[[package]]
|
|
name = "indexmap"
|
|
version = "2.14.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855"
|
|
dependencies = [
|
|
"equivalent",
|
|
"hashbrown",
|
|
]
|
|
|
|
[[package]]
|
|
name = "info"
|
|
version = "0.2.0"
|
|
dependencies = [
|
|
"serde",
|
|
"tokio",
|
|
"zip",
|
|
]
|
|
|
|
[[package]]
|
|
name = "itoa"
|
|
version = "1.0.18"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
|
|
|
|
[[package]]
|
|
name = "libc"
|
|
version = "0.2.190"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ce5d3ddc6d3fa000eb1536d85e147bfe31aacaba692ed6a876f95cb7c855be78"
|
|
|
|
[[package]]
|
|
name = "memchr"
|
|
version = "2.8.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
|
|
|
|
[[package]]
|
|
name = "mio"
|
|
version = "1.2.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "1788edb87fdc09c7e26304471e2f5be8cdefb1b6930d6e3985fc02ff53bf86ee"
|
|
dependencies = [
|
|
"libc",
|
|
"wasi",
|
|
"windows-sys",
|
|
]
|
|
|
|
[[package]]
|
|
name = "once_cell"
|
|
version = "1.21.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
|
|
|
|
[[package]]
|
|
name = "pin-project-lite"
|
|
version = "0.2.17"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
|
|
|
|
[[package]]
|
|
name = "proc-macro2"
|
|
version = "1.0.107"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
|
|
dependencies = [
|
|
"unicode-ident",
|
|
]
|
|
|
|
[[package]]
|
|
name = "quote"
|
|
version = "1.0.47"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serde"
|
|
version = "1.0.229"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
|
|
dependencies = [
|
|
"serde_core",
|
|
"serde_derive",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serde_core"
|
|
version = "1.0.229"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
|
|
dependencies = [
|
|
"serde_derive",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serde_derive"
|
|
version = "1.0.229"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn 3.0.6",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serde_json"
|
|
version = "1.0.151"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14"
|
|
dependencies = [
|
|
"itoa",
|
|
"memchr",
|
|
"serde",
|
|
"serde_core",
|
|
"zmij",
|
|
]
|
|
|
|
[[package]]
|
|
name = "signal-hook-registry"
|
|
version = "1.4.8"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b"
|
|
dependencies = [
|
|
"errno",
|
|
"libc",
|
|
]
|
|
|
|
[[package]]
|
|
name = "slab"
|
|
version = "0.4.12"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
|
|
|
|
[[package]]
|
|
name = "smallvec"
|
|
version = "1.16.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f9395f0f0eee849a9b707b2f06bb92a6a422090e2123bb2ef8e87a0e61892a8e"
|
|
|
|
[[package]]
|
|
name = "socket2"
|
|
version = "0.6.5"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4"
|
|
dependencies = [
|
|
"libc",
|
|
"windows-sys",
|
|
]
|
|
|
|
[[package]]
|
|
name = "stream"
|
|
version = "0.2.0"
|
|
dependencies = [
|
|
"bytes",
|
|
"futures-util",
|
|
"http-body-util",
|
|
"hyper",
|
|
"hyper-util",
|
|
"serde",
|
|
"tokio",
|
|
"zip",
|
|
]
|
|
|
|
[[package]]
|
|
name = "syn"
|
|
version = "2.0.119"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"unicode-ident",
|
|
]
|
|
|
|
[[package]]
|
|
name = "syn"
|
|
version = "3.0.6"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"unicode-ident",
|
|
]
|
|
|
|
[[package]]
|
|
name = "tokio"
|
|
version = "1.53.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e95f91fcc7a621e8b030f6aa23c71fe9838ae2fb4d8118b75602a328f5144044"
|
|
dependencies = [
|
|
"bytes",
|
|
"libc",
|
|
"mio",
|
|
"pin-project-lite",
|
|
"signal-hook-registry",
|
|
"socket2",
|
|
"tokio-macros",
|
|
"windows-sys",
|
|
]
|
|
|
|
[[package]]
|
|
name = "tokio-macros"
|
|
version = "2.7.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn 3.0.6",
|
|
]
|
|
|
|
[[package]]
|
|
name = "tokio-util"
|
|
version = "0.7.19"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "494815d09bf52b5548659851081238f0ca39ff638363907596da739561c62c52"
|
|
dependencies = [
|
|
"bytes",
|
|
"futures-core",
|
|
"futures-sink",
|
|
"libc",
|
|
"pin-project-lite",
|
|
"tokio",
|
|
]
|
|
|
|
[[package]]
|
|
name = "tracing"
|
|
version = "0.1.44"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
|
|
dependencies = [
|
|
"pin-project-lite",
|
|
"tracing-core",
|
|
]
|
|
|
|
[[package]]
|
|
name = "tracing-core"
|
|
version = "0.1.36"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
|
|
dependencies = [
|
|
"once_cell",
|
|
]
|
|
|
|
[[package]]
|
|
name = "try-lock"
|
|
version = "0.2.5"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
|
|
|
|
[[package]]
|
|
name = "unicode-ident"
|
|
version = "1.0.24"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
|
|
|
|
[[package]]
|
|
name = "want"
|
|
version = "0.3.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ec4cdd0dd910afe868b7ef477227d8d538b46b3075031afee8a9f2acb0a2ed0b"
|
|
dependencies = [
|
|
"try-lock",
|
|
]
|
|
|
|
[[package]]
|
|
name = "wasi"
|
|
version = "0.11.1+wasi-snapshot-preview1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
|
|
|
|
[[package]]
|
|
name = "windows-link"
|
|
version = "0.2.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
|
|
|
|
[[package]]
|
|
name = "windows-sys"
|
|
version = "0.61.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
|
|
dependencies = [
|
|
"windows-link",
|
|
]
|
|
|
|
[[package]]
|
|
name = "zip"
|
|
version = "0.2.0"
|
|
dependencies = [
|
|
"bytes",
|
|
"futures-util",
|
|
"http-body-util",
|
|
"hyper",
|
|
"hyper-util",
|
|
"serde",
|
|
"serde_json",
|
|
"tokio",
|
|
"zip-macros",
|
|
]
|
|
|
|
[[package]]
|
|
name = "zip-macros"
|
|
version = "0.2.0"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn 2.0.119",
|
|
]
|
|
|
|
[[package]]
|
|
name = "zmij"
|
|
version = "1.0.23"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
|