-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCargo.toml
113 lines (100 loc) · 2.9 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
[package]
name = "yawc"
version = "0.1.1"
edition = "2021"
authors = ["Dario <[email protected]>"]
description = "Yet another websocket library. But a fast, secure WebSocket implementation with RFC 6455 compliance and compression support"
documentation = "https://docs.rs/yawc"
repository = "https://github.com/infinitefield/yawc"
license = "LGPL-3.0-or-later"
keywords = ["websocket", "websockets", "ws", "networking", "async"]
categories = [
"network-programming",
"asynchronous",
"web-programming",
"web-programming::websocket",
]
readme = "README.md"
rust-version = "1.75.0"
# Package build settings
exclude = ["/.github/*", "/examples/*", "/tests/*", "/.gitignore"]
include = ["/src/**/*", "/Cargo.toml", "/README.md", "/LICENSE"]
# Documentation settings
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
# Optional feature configurations
[features]
default = []
zlib = ["flate2/any_zlib", "flate2/zlib-rs"]
logging = ["log"]
simd = ["simdutf8"]
reqwest = ["dep:reqwest"]
axum = ["axum-core", "async-trait", "http"]
json = ["serde_json", "serde"]
# Examples configuration
[[example]]
name = "axum"
path = "examples/axum.rs"
required-features = ["axum"]
[[example]]
name = "axum_proxy"
path = "examples/axum_proxy/main.rs"
required-features = ["axum", "reqwest", "json"]
[dependencies]
# HTTP clients
hyper = { version = "1", features = ["client", "http1"] }
hyper-util = { version = "0.1", features = ["tokio"] }
tokio-rustls = { version = "0.26", default-features = false, features = [
"ring",
"logging",
"tls12",
] }
reqwest = { version = "0.12", default-features = false, optional = true }
# HTTP servers (optional)
axum-core = { version = "0.4", optional = true }
async-trait = { version = "0.1", optional = true }
http = { version = "1", optional = true }
# Async runtime and utilities
tokio = { version = "1", default-features = false, features = [
"rt",
"macros",
"net",
"time",
"io-util",
] }
tokio-util = { version = "0.7", features = ["codec"] }
futures = "0.3"
# Compression
flate2 = "1"
# Encoding and cryptography
base64 = "0.22"
sha1 = "0.10"
# JSON support
serde = { version = "1", optional = true }
serde_json = { version = "1", optional = true }
# Utilities
simdutf8 = { version = "0.1", optional = true }
bytes = "1"
http-body-util = "0.1"
nom = "7.1"
pin-project = "1"
rand = "0.8"
thiserror = "1"
url = "2"
log = { version = "0.4", optional = true }
[dev-dependencies]
anyhow = "1.0.91"
axum = "0.7.7"
hyper = { version = "1.5.0", features = ["http1", "server", "client"] }
log = "0.4.22"
reqwest = { version = "0.12", default-features = false, features = [
"rustls-tls",
"rustls-tls-webpki-roots",
] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
simple_logger = "5.0.0"
tokio = { version = "1.41.0", features = ["full"] }
tokio-stream = { version = "0.1.16", features = ["sync"] }
webpki-roots = "0.26.6"