Rocket/core/lib/Cargo.toml
Sergio Benitez edce8bd656 Use default 'CryptoProvider' for all TLS ops.
Prior to this commit, some TLS related operations used 'ring' even when
a different default 'CryptoProvider' was installed. This commit fixes
that by refactoring 'TlsConfig' such that all utility methods are
required to use the default 'CryptoProvider'.

This commit also cleans up code related to the rustls 0.23 update.
2024-03-31 11:46:56 -07:00

145 lines
3.9 KiB
TOML

[package]
name = "rocket"
version = "0.6.0-dev"
authors = ["Sergio Benitez <sb@sergio.bz>"]
description = """
Web framework with a focus on usability, security, extensibility, and speed.
"""
documentation = "https://api.rocket.rs/master/rocket/"
homepage = "https://rocket.rs"
repository = "https://github.com/rwf2/Rocket"
readme = "../../README.md"
keywords = ["rocket", "web", "framework", "server"]
license = "MIT OR Apache-2.0"
build = "build.rs"
categories = ["web-programming::http-server"]
edition = "2021"
rust-version = "1.75"
[package.metadata.docs.rs]
all-features = true
[lints.rust]
rust_2018_idioms = "warn"
# missing_docs = "warn"
async_fn_in_trait = "allow"
refining_impl_trait = "allow"
[lints.clippy]
type_complexity = "allow"
module_inception = "allow"
multiple_bound_locations = "allow"
manual_range_contains = "allow"
[features]
default = ["http2", "tokio-macros"]
http2 = ["hyper/http2", "hyper-util/http2"]
http3-preview = ["s2n-quic", "s2n-quic-h3", "tls"]
secrets = ["cookie/private", "cookie/key-expansion"]
json = ["serde_json"]
msgpack = ["rmp-serde"]
uuid = ["uuid_", "rocket_http/uuid"]
tls = ["rustls", "tokio-rustls", "rustls-pemfile"]
mtls = ["tls", "x509-parser"]
tokio-macros = ["tokio/macros"]
[dependencies]
# Optional serialization dependencies.
serde_json = { version = "1.0.26", optional = true }
rmp-serde = { version = "1", optional = true }
uuid_ = { package = "uuid", version = "1", optional = true, features = ["serde"] }
# Optional MTLS dependencies
x509-parser = { version = "0.16", optional = true }
# Hyper dependencies
http = "1"
bytes = "1.4"
hyper = { version = "1.1", default-features = false, features = ["http1", "server"] }
# Non-optional, core dependencies from here on out.
yansi = { version = "1.0.1", features = ["detect-tty"] }
log = { version = "0.4", features = ["std"] }
num_cpus = "1.0"
time = { version = "0.3", features = ["macros", "parsing"] }
memchr = "2" # TODO: Use pear instead.
binascii = "0.1"
ref-cast = "1.0"
ref-swap = "0.1.2"
parking_lot = "0.12"
ubyte = {version = "0.10.2", features = ["serde"] }
serde = { version = "1.0", features = ["derive"] }
figment = { version = "0.10.13", features = ["toml", "env"] }
rand = "0.8"
either = "1"
pin-project-lite = "0.2"
indexmap = { version = "2", features = ["serde"] }
tempfile = "3"
async-trait = "0.1.43"
async-stream = "0.3.2"
multer = { version = "3.0.0", features = ["tokio-io"] }
tokio-stream = { version = "0.1.6", features = ["signal", "time"] }
cookie = { version = "0.18", features = ["percent-encode"] }
futures = { version = "0.3.30", default-features = false, features = ["std"] }
state = "0.6"
[dependencies.hyper-util]
version = "0.1.3"
default-features = false
features = ["http1", "server", "tokio"]
[dependencies.tokio]
version = "1.35.1"
features = ["rt-multi-thread", "net", "io-util", "fs", "time", "sync", "signal", "parking_lot"]
[dependencies.tokio-util]
version = "0.7"
default-features = false
features = ["io"]
[dependencies.rocket_codegen]
version = "0.6.0-dev"
path = "../codegen"
[dependencies.rocket_http]
version = "0.6.0-dev"
path = "../http"
features = ["serde"]
[dependencies.rustls]
version = "0.23"
default-features = false
features = ["ring", "logging", "std", "tls12"]
optional = true
[dependencies.tokio-rustls]
version = "0.26"
default-features = false
features = ["logging", "tls12", "ring"]
optional = true
[dependencies.rustls-pemfile]
version = "2.1.0"
optional = true
[dependencies.s2n-quic]
version = "1.32"
default-features = false
features = ["provider-address-token-default", "provider-tls-rustls"]
optional = true
[dependencies.s2n-quic-h3]
git = "https://github.com/SergioBenitez/s2n-quic-h3.git"
optional = true
[target.'cfg(unix)'.dependencies]
libc = "0.2.149"
[build-dependencies]
version_check = "0.9.1"
[dev-dependencies]
tokio = { version = "1", features = ["macros", "io-std"] }
figment = { version = "0.10", features = ["test"] }
pretty_assertions = "1"