[package]
name = "geiserx_ts_netstack_smoltcp_socket"
version.workspace = true
description = "userspace netstack built on smoltcp (socket wrappers)"
categories = ["no-std", "network-programming"]
keywords = ["tailscale", "socket", "network", "smoltcp", "netstack"]

repository.workspace = true
edition.workspace = true
license.workspace = true
rust-version.workspace = true


[lib]
name = "ts_netstack_smoltcp_socket"
[lints]
workspace = true

[dependencies]
bytes.workspace = true
tracing.workspace = true

ts_netstack_smoltcp_core = { workspace = true }

tokio = { workspace = true, optional = true, features = ["time"] }
futures-io = { version = "0.3", optional = true }

[features]
tokio = ["dep:tokio", "std"]
futures-io = ["dep:futures-io", "std"]
std = ["ts_netstack_smoltcp_core/std"]

[dev-dependencies]
# Test-only: drive the async `TcpStream` read/write paths against a live in-process netstack to
# prove the tsr-9ue reaped-socket mappings (poll_read → EOF, poll_write → ConnectionReset). Uses a
# full runtime so the `AsyncRead`/`AsyncWrite` futures can be awaited with a background driver thread.
tokio = { workspace = true, features = ["rt", "macros", "io-util", "time"] }
