[package] name = "alksocks" version = "0.3.2" edition = "2021" rust-version = "1.88" license = "MIT OR Apache-2.0" description = "SOCKS5 (RFC 1928) proxy protocol over alkcall channels: targeted-forked fast-socks5 typestate core plus producer/consumer sessions. Producer/consumer protocol crate." repository = "https://git.alk.dev/alkdev/alksocks" readme = "README.md" keywords = ["socks5", "proxy", "rfc1928", "channels", "alkcall"] categories = ["network-programming", "asynchronous"] exclude = [".opencode/", "AGENTS.md", "docs/reviews/", "docs/research/", "docs/plans/", "tasks/", "docs/sdd_process.md", "fuzz/"] [workspace] members = ["."] exclude = ["fuzz"] [lib] name = "alksocks" [features] # Declared empty by design (ADR-009): `local` adds tokio/net when its # modules land, `composed` adds the alktunnels dep. The default build # is protocol-only and wasm-clean by construction. default = [] local = ["tokio/net"] composed = ["dep:alktunnels"] [dependencies] # The substrate (convention 11): pinned, bump deliberately, never # transitively. 0.10.1: the adoption-window ordering fix (review 013, # routed from alkgit's wave-2 gate): install+park-drain is one atomic # section in the channels demux; the fix surface is private upstream, so # no change on this crate's paths (relevant in principle to the # bind-first adopt flow; the behavior only strengthens). alkcall = "0.10.1" tokio = { version = "1", default-features = false, features = ["rt", "sync", "io-util", "macros", "time"] } # The fork's declared logging seam (rfc1928.md: upstream `log` calls # were dropped or re-pointed here); no source file references it yet, # the first consumer is expected to be the producer layer's # diagnostics (review 001 N-2). tracing = "0.1" thiserror = "2" serde = { version = "1", features = ["derive"] } serde_json = "1" bytes = "1" futures = { version = "0.3", default-features = false, features = ["std"] } # The sibling crate (the composed egress's direct-op vehicle, ADR-008/ # ADR-009): rides `composed` alone. Pinned; bump deliberately # (convention 11's deliberate-bump rule applies to siblings too). # 0.5.0: the correlation-gate release (the forwarded op's serving half # gains an establishment phase (additive API only, no wire change). alktunnels = { version = "0.5.0", optional = true } [dev-dependencies] tokio = { version = "1", features = ["full", "test-util", "macros"] } tracing-subscriber = { version = "0.3", features = ["env-filter"] } # The composed suite's topology (the alktunnels direct-op producer); # dev-only: the test binary gates itself on the `composed` feature # (`#![cfg(feature = "composed")]`), the dev-dep keeps it compiling. alktunnels = "0.5.0"