[package]
edition = "2021"
rust-version = "1.85"
name = "potato"
version = "0.3.12"
authors = ["fawdlstty<f@fawdlstty.com>"]
build = false
exclude = ["src/main.rs"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A very simple and high performance http library."
homepage = "https://github.com/fawdlstty/potato"
readme = "README.md"
keywords = [
"http",
"web",
]
categories = []
license = "MIT"
repository = "https://github.com/fawdlstty/potato"
[features]
acme = [
"tls",
"dep:instant-acme",
"dep:x509-parser",
]
default = [
"openapi",
"tls",
]
full = [
"openapi",
"ssh",
"tls",
"http2",
"http3",
"webdav",
"acme",
"webrtc",
]
http2 = [
"tls",
"dep:h2",
"dep:bytes",
]
http3 = [
"tls",
"dep:h3",
"dep:h3-quinn",
"dep:quinn",
"dep:bytes",
"dep:rcgen",
]
jemalloc = [
"dep:tikv-jemalloc-ctl",
"dep:tikv-jemalloc-sys",
"dep:tikv-jemallocator",
]
openapi = []
ssh = ["dep:russh"]
tls = [
"dep:rustls-pki-types",
"dep:tokio-rustls",
"dep:webpki-roots",
]
webdav = [
"dep:bytes",
"dep:dav-server",
"dep:futures-util",
"dep:webpki-roots",
]
webrtc = [
"dep:webrtc",
"dep:webrtc-util",
"dep:uuid",
"dep:bytes",
"tls",
]
[lib]
name = "potato"
path = "src/lib.rs"
[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"
[[test]]
name = "test_acme"
path = "tests/test_acme.rs"
[[test]]
name = "test_acme_renewal"
path = "tests/test_acme_renewal.rs"
[[test]]
name = "test_acme_renewal_deep"
path = "tests/test_acme_renewal_deep.rs"
[[test]]
name = "test_acme_renewal_integration"
path = "tests/test_acme_renewal_integration.rs"
[[test]]
name = "test_acme_renewal_verification"
path = "tests/test_acme_renewal_verification.rs"
[[test]]
name = "test_acme_workflow"
path = "tests/test_acme_workflow.rs"
[[test]]
name = "test_all_http_methods_string_return"
path = "tests/test_all_http_methods_string_return.rs"
[[test]]
name = "test_client_custom_headers"
path = "tests/test_client_custom_headers.rs"
[[test]]
name = "test_client_features"
path = "tests/test_client_features.rs"
[[test]]
name = "test_compile_fail_preprocess_session"
path = "tests/test_compile_fail_preprocess_session.rs"
[[test]]
name = "test_controller_session_cache_auth"
path = "tests/test_controller_session_cache_auth.rs"
[[test]]
name = "test_controller_swagger_auth"
path = "tests/test_controller_swagger_auth.rs"
[[test]]
name = "test_controller_tag_no_lifetime"
path = "tests/test_controller_tag_no_lifetime.rs"
[[test]]
name = "test_controller_without_session_cache"
path = "tests/test_controller_without_session_cache.rs"
[[test]]
name = "test_cookie_full_features"
path = "tests/test_cookie_full_features.rs"
[[test]]
name = "test_custom_header_macro"
path = "tests/test_custom_header_macro.rs"
[[test]]
name = "test_custom_header_variable"
path = "tests/test_custom_header_variable.rs"
[[test]]
name = "test_error_handler"
path = "tests/test_error_handler.rs"
[[test]]
name = "test_example_features"
path = "tests/test_example_features.rs"
[[test]]
name = "test_feature_flags"
path = "tests/test_feature_flags.rs"
[[test]]
name = "test_header_annotation"
path = "tests/test_header_annotation.rs"
[[test]]
name = "test_http2_features"
path = "tests/test_http2_features.rs"
[[test]]
name = "test_http3_features"
path = "tests/test_http3_features.rs"
[[test]]
name = "test_http3_without_encrypt"
path = "tests/test_http3_without_encrypt.rs"
[[test]]
name = "test_https_example"
path = "tests/test_https_example.rs"
[[test]]
name = "test_limit_size"
path = "tests/test_limit_size.rs"
[[test]]
name = "test_macro_system"
path = "tests/test_macro_system.rs"
[[test]]
name = "test_max_concurrency"
path = "tests/test_max_concurrency.rs"
[[test]]
name = "test_ollama_features"
path = "tests/test_ollama_features.rs"
[[test]]
name = "test_once_cache"
path = "tests/test_once_cache.rs"
[[test]]
name = "test_server_features"
path = "tests/test_server_features.rs"
[[test]]
name = "test_session_cache"
path = "tests/test_session_cache.rs"
[[test]]
name = "test_session_cache_compile_check"
path = "tests/test_session_cache_compile_check.rs"
[[test]]
name = "test_session_cache_cookie"
path = "tests/test_session_cache_cookie.rs"
[[test]]
name = "test_session_cache_cookie_simple"
path = "tests/test_session_cache_cookie_simple.rs"
[[test]]
name = "test_session_cache_opensapi_auth"
path = "tests/test_session_cache_opensapi_auth.rs"
[[test]]
name = "test_string_return_integration"
path = "tests/test_string_return_integration.rs"
[[test]]
name = "test_string_return_types"
path = "tests/test_string_return_types.rs"
[[test]]
name = "test_transfer_rate_limit"
path = "tests/test_transfer_rate_limit.rs"
[[test]]
name = "test_versioned_client"
path = "tests/test_versioned_client.rs"
[[test]]
name = "test_webrtc_features"
path = "tests/test_webrtc_features.rs"
[[test]]
name = "test_webtransport_features"
path = "tests/test_webtransport_features.rs"
[dependencies.anyhow]
version = "1.0.100"
[dependencies.async-recursion]
version = "1.1.1"
[dependencies.async-trait]
version = "0.1.89"
[dependencies.base64]
version = "0.22.1"
[dependencies.bytes]
version = "1.10.1"
optional = true
[dependencies.chrono]
version = "0.4.42"
[dependencies.dashmap]
version = "6.1.0"
[dependencies.dav-server]
version = "0.10.0"
optional = true
[dependencies.flate2]
version = "1.0.35"
[dependencies.futures-util]
version = "0.3.31"
optional = true
[dependencies.h2]
version = "0.4.12"
optional = true
[dependencies.h3]
version = "0.0.8"
optional = true
[dependencies.h3-quinn]
version = "0.0.10"
optional = true
[dependencies.hipstr]
version = "0.8.0"
[dependencies.http]
version = "1.4.0"
[dependencies.httparse]
version = "1.9.5"
[dependencies.instant-acme]
version = "0.8"
features = ["ring"]
optional = true
default-features = true
[dependencies.inventory]
version = "0.3.15"
[dependencies.jsonwebtoken]
version = "9.3.0"
[dependencies.potato-macro]
version = "0.3.12"
[dependencies.quinn]
version = "0.11.9"
features = [
"runtime-tokio",
"rustls-ring",
]
optional = true
default-features = false
[dependencies.rand]
version = "0.8.5"
[dependencies.rcgen]
version = "0.14.5"
optional = true
[dependencies.regex]
version = "1.11.1"
[dependencies.russh]
version = "0.59.0"
features = [
"flate2",
"ring",
"rsa",
]
optional = true
default-features = false
[dependencies.rust-embed]
version = "8.9.0"
[dependencies.rustls-pki-types]
version = "1.11.0"
optional = true
[dependencies.serde]
version = "1.0.228"
[dependencies.serde_json]
version = "1.0.148"
[dependencies.sha1]
version = "0.10.6"
[dependencies.smallstr]
version = "0.3.0"
[dependencies.smallvec]
version = "1.14.0"
[dependencies.strum]
version = "0.27.2"
features = ["derive"]
[dependencies.thread_local]
version = "1.1.9"
[dependencies.tokio]
version = "1.49.0"
features = ["full"]
[dependencies.tokio-rustls]
version = "0.26.2"
features = [
"ring",
"tls12",
]
optional = true
default-features = false
[dependencies.uuid]
version = "1.0"
features = ["v4"]
optional = true
[dependencies.webpki-roots]
version = "1.0.5"
optional = true
[dependencies.webrtc]
version = "0.17"
optional = true
[dependencies.webrtc-util]
version = "0.17"
optional = true
[dependencies.x509-parser]
version = "0.16"
optional = true
[dev-dependencies.rcgen]
version = "0.14.5"
[dev-dependencies.time]
version = "0.3"
[target.'cfg(not(target_os = "windows"))'.dependencies.tikv-jemalloc-ctl]
version = "0.6.0"
optional = true
[target.'cfg(not(target_os = "windows"))'.dependencies.tikv-jemalloc-sys]
version = "0.6.0"
features = [
"profiling",
"stats",
"unprefixed_malloc_on_supported_platforms",
"background_threads",
]
optional = true
[target.'cfg(not(target_os = "windows"))'.dependencies.tikv-jemallocator]
version = "0.6.0"
features = [
"profiling",
"stats",
"unprefixed_malloc_on_supported_platforms",
"background_threads",
]
optional = true