wip: refactor whole module in lib

This commit is contained in:
Jun Kurihara 2023-11-21 22:46:52 +09:00
commit f98c778a0c
No known key found for this signature in database
GPG key ID: 48ADFD173ED22B03
42 changed files with 943 additions and 531 deletions

View file

@ -12,19 +12,19 @@ publish = false
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features]
default = ["http3-s2n", "sticky-cookie", "cache"]
http3-quinn = ["quinn", "h3", "h3-quinn", "socket2"]
http3-s2n = ["h3", "s2n-quic", "s2n-quic-rustls", "s2n-quic-h3"]
sticky-cookie = ["base64", "sha2", "chrono"]
cache = ["http-cache-semantics", "lru"]
native-roots = ["hyper-rustls/native-tokio"]
# default = ["http3-s2n", "sticky-cookie", "cache"]
# http3-quinn = ["quinn", "h3", "h3-quinn", "socket2"]
# http3-s2n = ["h3", "s2n-quic", "s2n-quic-rustls", "s2n-quic-h3"]
# sticky-cookie = ["base64", "sha2", "chrono"]
# cache = ["http-cache-semantics", "lru"]
# native-roots = ["hyper-rustls/native-tokio"]
[dependencies]
rand = "0.8.5"
rustc-hash = "1.1.0"
bytes = "1.5.0"
derive_builder = "0.12.0"
futures = { version = "0.3.29", features = ["alloc", "async-await"] }
# rand = "0.8.5"
# rustc-hash = "1.1.0"
# bytes = "1.5.0"
# derive_builder = "0.12.0"
# futures = { version = "0.3.29", features = ["alloc", "async-await"] }
tokio = { version = "1.34.0", default-features = false, features = [
"net",
"rt-multi-thread",
@ -34,7 +34,7 @@ tokio = { version = "1.34.0", default-features = false, features = [
"fs",
] }
async-trait = "0.1.74"
hot_reload = "0.1.4" # reloading certs
# hot_reload = "0.1.4" # reloading certs
# Error handling
anyhow = "1.0.75"
@ -42,48 +42,48 @@ thiserror = "1.0.50"
# http and tls
http = "1.0.0"
http-body-util = "0.1.0"
# http-body-util = "0.1.0"
hyper = { version = "1.0.1", default-features = false }
hyper-util = { version = "0.1.1", features = ["full"] }
hyper-rustls = { version = "0.24.2", default-features = false, features = [
"tokio-runtime",
"webpki-tokio",
"http1",
"http2",
] }
tokio-rustls = { version = "0.24.1", features = ["early-data"] }
# hyper-util = { version = "0.1.1", features = ["full"] }
# hyper-rustls = { version = "0.24.2", default-features = false, features = [
# "tokio-runtime",
# "webpki-tokio",
# "http1",
# "http2",
# ] }
# tokio-rustls = { version = "0.24.1", features = ["early-data"] }
rustls = { version = "0.21.9", default-features = false }
webpki = "0.22.4"
x509-parser = "0.15.1"
# webpki = "0.22.4"
# x509-parser = "0.15.1"
# logging
tracing = { version = "0.1.40" }
# http/3
quinn = { version = "0.10.2", optional = true }
h3 = { path = "../submodules/h3/h3/", optional = true }
h3-quinn = { path = "../submodules/h3/h3-quinn/", optional = true }
s2n-quic = { version = "1.31.0", default-features = false, features = [
"provider-tls-rustls",
], optional = true }
s2n-quic-h3 = { path = "../submodules/s2n-quic-h3/", optional = true }
s2n-quic-rustls = { version = "0.31.0", optional = true }
# for UDP socket wit SO_REUSEADDR when h3 with quinn
socket2 = { version = "0.5.5", features = ["all"], optional = true }
# # http/3
# quinn = { version = "0.10.2", optional = true }
# h3 = { path = "../submodules/h3/h3/", optional = true }
# h3-quinn = { path = "../submodules/h3/h3-quinn/", optional = true }
# s2n-quic = { version = "1.31.0", default-features = false, features = [
# "provider-tls-rustls",
# ], optional = true }
# s2n-quic-h3 = { path = "../submodules/s2n-quic-h3/", optional = true }
# s2n-quic-rustls = { version = "0.31.0", optional = true }
# # for UDP socket wit SO_REUSEADDR when h3 with quinn
# socket2 = { version = "0.5.5", features = ["all"], optional = true }
# cache
http-cache-semantics = { path = "../submodules/rusty-http-cache-semantics/", optional = true }
lru = { version = "0.12.0", optional = true }
# # cache
# http-cache-semantics = { path = "../submodules/rusty-http-cache-semantics/", optional = true }
# lru = { version = "0.12.0", optional = true }
# cookie handling for sticky cookie
chrono = { version = "0.4.31", default-features = false, features = [
"unstable-locales",
"alloc",
"clock",
], optional = true }
base64 = { version = "0.21.5", optional = true }
sha2 = { version = "0.10.8", default-features = false, optional = true }
# # cookie handling for sticky cookie
# chrono = { version = "0.4.31", default-features = false, features = [
# "unstable-locales",
# "alloc",
# "clock",
# ], optional = true }
# base64 = { version = "0.21.5", optional = true }
# sha2 = { version = "0.10.8", default-features = false, optional = true }
[dev-dependencies]
# http and tls
# [dev-dependencies]
# # http and tls