- Initialize alknet-client crate with Cargo.toml, deps, feature flags - Implement ClientDialError enum with 5 variants (TlsConfig, Connect, Handshake, NoTransport, Proxy) - Implement AlknetClient struct with builder methods (with_quinn, with_tcp_tls, with_iroh, with_socks5_proxy) - Implement dial_quic — QUIC dial via quinn, producing a Connection - Implement dial_tcp_tls — TCP+TLS dial via tokio-rustls, producing a Connection - Implement dial_iroh — iroh dial, producing a Connection - Implement SOCKS5 proxy support — Socks5ProxyConfig, Socks5Credentials, Socks5UdpSocket, proxy integration - Add into_rustls_config() to TlsClientConfig in alknet-tls - Add alknet-client to workspace members Tasks: client/crate-init, client/error-type, client/client-core, client/dial-quic, client/dial-tcp-tls, client/dial-iroh, client/socks5-proxy
32 lines
961 B
TOML
32 lines
961 B
TOML
[package]
|
|
name = "alknet-client"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
description = "Native client dial seam — multi-transport dialer that produces Connections for protocol take-overs"
|
|
repository.workspace = true
|
|
|
|
[lib]
|
|
name = "alknet_client"
|
|
|
|
[features]
|
|
default = []
|
|
quinn = ["dep:quinn", "alknet-tls/quinn", "alknet-core/quinn"]
|
|
tcp = ["dep:tokio-rustls", "alknet-tls/tcp"]
|
|
iroh = ["dep:iroh", "alknet-core/iroh"]
|
|
socks5 = ["dep:fast-socks5"]
|
|
|
|
[dependencies]
|
|
alknet-core = { path = "../alknet-core" }
|
|
alknet-tls = { path = "../alknet-tls" }
|
|
tokio = { version = "1", features = ["full"] }
|
|
thiserror = "2"
|
|
tracing = "0.1"
|
|
quinn = { version = "0.11", optional = true }
|
|
tokio-rustls = { version = "0.26", optional = true }
|
|
iroh = { version = "1.0", optional = true, default-features = false, features = ["tls-aws-lc-rs"] }
|
|
fast-socks5 = { version = "1", optional = true }
|
|
rustls = "0.23"
|
|
rustls-pki-types = "1"
|
|
hex = "0.4"
|