[package]
name = "picomux"
version = "0.1.15"
edition = "2024"
repository = "https://github.com/geph-official/geph5"
license = "ISC"
description = "A protocol to multiplex multiple AsyncRead/Write streams over a single one, inspired by smux and http2"

[dependencies]
ahash = "0.8.12"
anyhow = "1.0.98"
async-dup = "1.2.4"
async-task = "4.7.1"
async_io_stream = "0.3.3"
bipe = "0.2"
bytemuck = { version = "1.23.1", features = ["derive", "min_const_generics"] }
bytes = "1.10.1"
dashmap = "6.1.0"
futures-lite = "2.6.0"
futures-util = { version = "0.3.31", features = ["io"] }
oneshot = "0.1.11"
parking_lot = "0.12.4"
rand = "0.9"
recycle-box = "0.2.0"
scopeguard = "1.2.0"
smol-timeout2 = "0.6.1"
smolscale = "0.4.16"
tracing = "0.1.41"
tracing-test = "0.2.5"

tap = "1.0.1"
serde = { version = "1.0.219", features = ["derive"] }
serde_json = "1.0.141"
async-io = "2.5.0"
sillad = { version = "0.2", path = "../sillad" }
futures-intrusive = "0.5.0"
async-channel = "2.5.0"
pin-project = "1.1.10"
tachyonix = "0.3.1"
async-event = "0.2.1"
async-lock = "3.4.0"
crossbeam-queue = "0.3.12"
async-io-bufpool = "0.2"
atomic_float = "1.1.0"

[dev-dependencies]
smol = "2"
socksv5 = "0.3"
sillad-sosistab3 = { path = "../sillad-sosistab3" }
tracing-subscriber = "0.3"
clap = { version = "4.5.41", features = ["derive"] }
argh = "0.1"
