灵符lingfu

ling-net

↓ 0 downloads

Async networking — HTTP, WebSocket, QUIC, and peer-to-peer

Keywords net, async, http, quic, websocket, p2p
lingfu install ling-net
LicenseApache-2.0 OR MIT
AuthorsLing Lin, Sanny Lin
READMECode / FilesVersionsDependency GraphDependentsSecurityBuildsSettings

Code / Files (26)

Cargo.toml
[package]
name = "ling-net"
version = "2030.0.8"
edition = "2021"
authors = ["Ling Lin <taellinglin@gmail.com>", "Sanny Lin <SannyLing53@gmail.com>"]
description = "Async networking — HTTP, WebSocket, QUIC, and peer-to-peer"
license = "Apache-2.0 OR MIT"
readme = "README.md"
repository = "https://github.com/taellinglin/ling"

[features]
default = ["http"]
http      = ["dep:axum", "dep:reqwest", "dep:tokio"]
websocket = ["dep:tokio-tungstenite", "dep:tokio"]
quic      = ["dep:quinn", "dep:tokio"]
grpc      = ["dep:tonic", "dep:prost", "dep:tokio"]
# lingtp:// — raw-TCP, post-quantum secure transport (ML-DSA-87 + hybrid KEM
# handshake, XChaCha20-Poly1305 + DICE-42 cascade record layer). Not HTTP —
# its own framing, so it only needs `rand`/`subtle` on top of the base deps.
lingtp    = ["dep:rand", "dep:subtle"]

[dependencies]
ling-core   = { workspace = true }
ling-crypto = { workspace = true }
serde       = { version = "1.0", features = ["derive"] }
serde_json  = "1.0"
anyhow      = "1.0"
thiserror   = "1.0"

tokio             = { version = "1.37", features = ["rt", "net", "io-util", "macros"], optional = true }
axum              = { version = "0.7", optional = true }
reqwest           = { version = "0.12", features = ["json"], optional = true }
tokio-tungstenite = { version = "0.21", optional = true }
quinn             = { version = "0.11", optional = true }
tonic             = { version = "0.11", optional = true }
prost             = { version = "0.12", optional = true }
rand              = { version = "0.8", features = ["std"], optional = true }
subtle            = { version = "2.6", optional = true }

[lib]
name = "ling_net"
path = "src/lib.rs"

← Back to index