[package]
edition = "2024"
rust-version = "1.96.0"
name = "rullst-core"
version = "12.3.0"
authors = ["Rullst Core Team"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Core runtime, routing engine, and telemetry for the Rullst framework suite."
homepage = "https://rullst.github.io"
documentation = "https://docs.rs/rullst-core"
readme = "README.md"
keywords = [
"rullst",
"framework",
"web",
"runtime",
"routing",
]
categories = [
"web-programming::http-server",
"asynchronous",
]
license = "MIT"
repository = "https://github.com/Rullst/Rullst"
resolver = "2"
[package.metadata.cargo-machete]
ignored = [
"async-trait",
"rullst-core",
"subtle",
"serde",
"axum",
"serde_json",
"tokio",
"lettre",
"opentelemetry",
"opentelemetry-otlp",
"opentelemetry_sdk",
"redis",
"rullst-connect",
"rullst-macros",
"toml",
"tracing-opentelemetry",
"base64",
"ring",
"rullst-auth",
"windows-sys",
]
[features]
cache-redis = ["dep:redis"]
default = []
drivers-all = [
"orm",
"rullst-orm/drivers-all",
]
offline-sync = [
"dep:aes-gcm",
"dep:zeroize",
]
orm = [
"dep:rullst-orm",
"dep:sqlx",
]
queue-redis = ["dep:redis"]
queue-sqlite = [
"dep:sqlx",
"sqlx/sqlite",
]
redis = [
"queue-redis",
"cache-redis",
]
strict-mysql = [
"orm",
"rullst-orm/strict-mysql",
]
strict-postgres = [
"orm",
"rullst-orm/strict-postgres",
]
strict-sqlite = [
"orm",
"rullst-orm/strict-sqlite",
]
studio = []
telemetry = [
"dep:tracing-opentelemetry",
"dep:opentelemetry",
"dep:opentelemetry-otlp",
"dep:opentelemetry_sdk",
]
[lib]
name = "rullst_core"
path = "src/lib.rs"
[[test]]
name = "cache_inspection_live"
path = "tests/cache_inspection_live.rs"
[[test]]
name = "cache_resilience_test"
path = "tests/cache_resilience_test.rs"
[[test]]
name = "core_coverage_tests"
path = "tests/core_coverage_tests.rs"
[[test]]
name = "deep_core_coverage_tests"
path = "tests/deep_core_coverage_tests.rs"
[[test]]
name = "di_routing_scheduler_test"
path = "tests/di_routing_scheduler_test.rs"
[[test]]
name = "feature_db_cache"
path = "tests/feature_db_cache.rs"
[[test]]
name = "htmx_csrf_contract"
path = "tests/htmx_csrf_contract.rs"
[[test]]
name = "htmx_validation_contract"
path = "tests/htmx_validation_contract.rs"
[[test]]
name = "integration_test"
path = "tests/integration_test.rs"
[[test]]
name = "machine_endpoints"
path = "tests/machine_endpoints.rs"
[[test]]
name = "queue_scheduling_live"
path = "tests/queue_scheduling_live.rs"
[[test]]
name = "radar_telemetry_test"
path = "tests/radar_telemetry_test.rs"
[[test]]
name = "validation_storage_multitenant_test"
path = "tests/validation_storage_multitenant_test.rs"
[[bench]]
name = "core_bench"
path = "benches/core_bench.rs"
harness = false
[dependencies.http]
version = "1.5.0"
[dependencies.rullst-macros]
version = "12.3.0"
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
default-features = false
[dependencies.serde_json]
version = "1.0.150"
features = ["std"]
default-features = false
[dependencies.thiserror]
version = "2.0.19"
[dependencies.toml]
version = "1.1.6"
[dev-dependencies.criterion]
version = "0.8.2"
features = ["async_tokio"]
default-features = false
[dev-dependencies.futures-util]
version = "0.3.33"
features = ["sink"]
[dev-dependencies.testcontainers]
version = "0.27.3"
[dev-dependencies.tokio-tungstenite]
version = "0.29.0"
features = [
"connect",
"handshake",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.aes-gcm]
version = "0.11.0"
features = ["zeroize"]
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.async-trait]
version = "0.1.89"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.axum]
version = "0.8.9"
features = [
"macros",
"ws",
"macros",
"ws",
]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.base64]
version = "0.23.0"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.chrono]
version = "0.4.45"
features = ["clock"]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.cron]
version = "0.17.0"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.dashmap]
version = "6.2.1"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.dotenvy]
version = "0.15"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.http-body]
version = "1.1.0"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.libloading]
version = "0.9.0"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.opentelemetry]
version = "0.32.0"
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.opentelemetry-otlp]
version = "0.32.0"
features = [
"reqwest-client",
"http-proto",
"reqwest-rustls",
]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.opentelemetry_sdk]
version = "0.32.1"
features = ["rt-tokio"]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rand]
version = "0.10.1"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.redis]
version = "1.7.0"
features = [
"tokio-comp",
"aio",
]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.ring]
version = "0.17.14"
features = ["std"]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rullst-orm]
version = "12.3.0"
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.serde_urlencoded]
version = "0.7"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.sqlx]
version = "0.9.0"
features = [
"runtime-tokio",
"macros",
]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.subtle]
version = "2.6.1"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio]
version = "1.52.3"
features = [
"rt-multi-thread",
"macros",
"time",
"fs",
"io-util",
"sync",
"net",
"signal",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tower]
version = "0.5.3"
features = ["util"]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tower-http]
version = "0.7.1"
features = [
"fs",
"trace",
"cors",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tower-layer]
version = "0.3.3"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tower-service]
version = "0.3.3"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tracing]
version = "0.1.44"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tracing-core]
version = "0.1.36"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tracing-opentelemetry]
version = "0.33.0"
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"env-filter",
]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.uuid]
version = "1.26.1"
features = [
"v4",
"v4",
"rng-getrandom",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.validator]
version = "0.21.0"
features = ["derive"]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.zeroize]
version = "1.8.2"
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.console_error_panic_hook]
version = "0.1.7"
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom]
version = "0.4.2"
features = ["wasm_js"]
[target.'cfg(target_arch = "wasm32")'.dependencies.js-sys]
version = "0.3.103"
[target.'cfg(target_arch = "wasm32")'.dependencies.uuid]
version = "1.26.1"
features = [
"v4",
"v4",
"rng-getrandom",
]
default-features = false
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "0.2.123"
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen-futures]
version = "0.4.73"
[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
version = "0.3.100"
features = [
"Document",
"Headers",
"HtmlDocument",
"Window",
"Request",
"RequestCredentials",
"RequestInit",
"RequestMode",
"Response",
"console",
]
[target."cfg(windows)".dependencies.windows-sys]
version = "0.61.2"
features = [
"Win32_Foundation",
"Win32_System_ProcessStatus",
"Win32_System_Threading",
]
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
"cfg(mutants)",
"cfg(kani)",
]