feat(client): implement alknet-client crate — AlknetClient, dial methods, error type, SOCKS5 proxy
- 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
This commit is contained in:
1 parent
b476182d64
commit
82ee37e206
12 files changed
+1013
-8
No files matched your search
@@ -0,0 +1,31 @@
|
||||
[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"
|
||||
Reference in new issue
Block a user