# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO # # When uploading crates to the registry Cargo will automatically # "normalize" Cargo.toml files for maximal compatibility # with all versions of Cargo and also rewrite `path` dependencies # to registry (e.g., crates.io) dependencies. # # If you are reading this file be aware that the original Cargo.toml # will likely look very different (and much more reasonable). # See Cargo.toml.orig for the original contents. [package] edition = "2021" rust-version = "1.80.0" name = "rama" version = "0.2.0-alpha.3" authors = ["Glen De Cauwsemaecker "] build = "build.rs" autobins = false autoexamples = false autotests = false autobenches = false description = "modular service framework" homepage = "https://ramaproxy.org" documentation = "https://docs.rs/rama" readme = "README.md" keywords = [ "io", "async", "non-blocking", "service", "rama", ] categories = [ "asynchronous", "network-programming", "web-programming", "web-programming::http-client", "web-programming::http-server", ] license = "MIT OR Apache-2.0" repository = "https://github.com/plabayo/rama" [package.metadata.docs.rs] all-features = true rustdoc-args = [ "--cfg", "docsrs", ] [profile.dev] opt-level = 1 debug = 0 [profile.dev.package."*"] opt-level = 3 [lib] name = "rama" path = "src/lib.rs" [[example]] name = "http_conn_state" path = "examples/http_conn_state.rs" required-features = ["http-full"] [[example]] name = "http_connect_proxy" path = "examples/http_connect_proxy.rs" required-features = ["http-full"] [[example]] name = "http_form" path = "examples/http_form.rs" required-features = ["http-full"] [[example]] name = "http_health_check" path = "examples/http_health_check.rs" required-features = ["http-full"] [[example]] name = "http_high_level_client" path = "examples/http_high_level_client.rs" required-features = [ "compression", "http-full", ] [[example]] name = "http_k8s_health" path = "examples/http_k8s_health.rs" required-features = ["http-full"] [[example]] name = "http_key_value_store" path = "examples/http_key_value_store.rs" required-features = [ "compression", "http-full", ] [[example]] name = "http_listener_hello" path = "examples/http_listener_hello.rs" required-features = ["http-full"] [[example]] name = "http_mitm_proxy" path = "examples/http_mitm_proxy.rs" required-features = [ "http-full", "rustls", ] [[example]] name = "http_rate_limit" path = "examples/http_rate_limit.rs" required-features = ["http-full"] [[example]] name = "http_service_fs" path = "examples/http_service_fs.rs" required-features = ["http-full"] [[example]] name = "http_service_hello" path = "examples/http_service_hello.rs" required-features = [ "compression", "http-full", ] [[example]] name = "http_service_match" path = "examples/http_service_match.rs" required-features = ["http-full"] [[example]] name = "http_telemetry" path = "examples/http_telemetry.rs" required-features = [ "http-full", "telemetry", ] [[example]] name = "http_user_agent_classifier" path = "examples/http_user_agent_classifier.rs" required-features = ["http-full"] [[example]] name = "http_web_service_dir_and_api" path = "examples/http_web_service_dir_and_api.rs" required-features = [ "compression", "http-full", ] [[example]] name = "https_connect_proxy" path = "examples/https_connect_proxy.rs" required-features = [ "http-full", "rustls", ] [[example]] name = "mtls_tunnel_and_service" path = "examples/mtls_tunnel_and_service.rs" required-features = [ "http-full", "rustls", ] [[example]] name = "tcp_listener_hello" path = "examples/tcp_listener_hello.rs" required-features = ["tcp"] [[example]] name = "tcp_listener_layers" path = "examples/tcp_listener_layers.rs" required-features = ["tcp"] [[example]] name = "tls_boring_termination" path = "examples/tls_boring_termination.rs" required-features = [ "boring", "haproxy", "http-full", ] [[example]] name = "tls_termination" path = "examples/tls_termination.rs" required-features = [ "haproxy", "http-full", "rustls", ] [[test]] name = "integration" path = "tests/integration/main.rs" [[bench]] name = "ua_parse" path = "benches/ua_parse.rs" harness = false [dependencies.base64] version = "0.22" optional = true [dependencies.bytes] version = "1" optional = true [dependencies.hex] version = "0.4" optional = true [dependencies.rama-core] version = "0.2.0-alpha.3" [dependencies.rama-dns] version = "0.2.0-alpha.3" optional = true [dependencies.rama-haproxy] version = "0.2.0-alpha.3" optional = true [dependencies.rama-http] version = "0.2.0-alpha.3" optional = true [dependencies.rama-http-backend] version = "0.2.0-alpha.3" optional = true [dependencies.rama-macros] version = "0.2.0-alpha.3" [dependencies.rama-net] version = "0.2.0-alpha.3" optional = true [dependencies.rama-proxy] version = "0.2.0-alpha.3" optional = true [dependencies.rama-tcp] version = "0.2.0-alpha.3" optional = true [dependencies.rama-tls] version = "0.2.0-alpha.3" optional = true [dependencies.rama-ua] version = "0.2.0-alpha.3" optional = true [dependencies.rama-utils] version = "0.2.0-alpha.3" [dependencies.serde_html_form] version = "0.2" optional = true [dependencies.serde_json] version = "1.0" optional = true [dependencies.tokio] version = "1.39" features = [ "macros", "io-std", ] optional = true [dependencies.tracing] version = "0.1" optional = true [dev-dependencies.bytes] version = "1" [dev-dependencies.divan] version = "0.1.14" [dev-dependencies.escargot] version = "0.5.12" [dev-dependencies.itertools] version = "0.13.0" [dev-dependencies.opentelemetry-otlp] version = "0.17" features = ["tokio"] [dev-dependencies.opentelemetry_sdk] version = "0.24" features = [ "trace", "rt-tokio", ] default-features = false [dev-dependencies.regex] version = "1.10.3" [dev-dependencies.serde] version = "1.0" features = ["derive"] [dev-dependencies.serde_json] version = "1.0" [dev-dependencies.tokio] version = "1.39" features = ["macros"] [dev-dependencies.tracing] version = "0.1" [dev-dependencies.tracing-subscriber] version = "0.3.17" features = ["env-filter"] [build-dependencies.rustversion] version = "1.0.9" [features] boring = [ "tls", "rama-tls/boring", "rama-net/boring", "rama-http-backend/boring", ] cli = [ "dep:base64", "dep:bytes", "dep:hex", "dep:serde_json", "dep:serde_html_form", "dep:tracing", "dep:tokio", "http", ] compression = [ "http", "rama-http/compression", ] default = [] dns = [ "net", "dep:rama-dns", ] full = [ "telemetry", "compression", "rustls", "boring", "cli", "tcp", "http-full", "proxy-full", ] haproxy = ["dep:rama-haproxy"] http = [ "net", "dep:rama-http", "net", "ua", "rama-net/http", "rama-tcp/http", ] http-full = [ "http", "tcp", "dep:rama-http-backend", ] net = ["dep:rama-net"] proxy = ["dep:rama-proxy"] proxy-csv = [ "proxy", "rama-proxy/csv", ] proxy-full = [ "proxy-memory-db", "proxy-live-update", "proxy-csv", "haproxy", ] proxy-live-update = [ "proxy", "rama-proxy/live-update", ] proxy-memory-db = [ "proxy", "rama-proxy/memory-db", "rama-net/venndb", ] rustls = [ "tls", "rama-tls/rustls", "rama-net/rustls", "rama-http-backend/rustls", ] rustls-ring = [ "tls", "rama-tls/rustls-ring", ] tcp = [ "dns", "dep:rama-tcp", ] telemetry = [ "rama-core/telemetry", "rama-net/telemetry", "rama-http/telemetry", ] tls = [ "net", "dep:rama-tls", "rama-net/tls", "rama-http/tls", "rama-http-backend/tls", ] ua = ["dep:rama-ua"]