[package]
edition = "2021"
name = "rusty-ssr"
version = "0.1.0"
authors = ["Egor Babushkin"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-performance SSR engine for Rust with V8 isolate pool and multi-tier caching"
homepage = "https://github.com/babasha/Rusty-SSR"
documentation = "https://docs.rs/rusty-ssr"
readme = "README.md"
keywords = [
"ssr",
"v8",
"preact",
"react",
"rendering",
]
categories = [
"web-programming",
"caching",
"asynchronous",
]
license = "MIT"
repository = "https://github.com/babasha/Rusty-SSR"
[features]
axum-integration = [
"axum",
"tower",
"tower-http",
]
brotli-compression = [
"brotli",
"tokio/fs",
]
cache = [
"dashmap",
"parking_lot",
"lru",
]
default = [
"v8-pool",
"cache",
"axum-integration",
]
full = [
"v8-pool",
"cache",
"axum-integration",
"brotli-compression",
]
v8-pool = [
"deno_core",
"serde_v8",
]
[lib]
name = "rusty_ssr"
path = "src/lib.rs"
[[example]]
name = "basic"
path = "examples/basic.rs"
[[example]]
name = "loadtest"
path = "examples/loadtest.rs"
[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"
[[bench]]
name = "cache_benchmark"
path = "benches/cache_benchmark.rs"
harness = false
[[bench]]
name = "ssr_benchmark"
path = "benches/ssr_benchmark.rs"
harness = false
[dependencies.axum]
version = "0.7"
optional = true
[dependencies.brotli]
version = "7.0"
optional = true
[dependencies.core_affinity]
version = "0.8"
[dependencies.dashmap]
version = "6.1"
optional = true
[dependencies.deno_core]
version = "0.322"
optional = true
[dependencies.futures]
version = "0.3"
[dependencies.lru]
version = "0.12"
optional = true
[dependencies.num_cpus]
version = "1.16"
[dependencies.parking_lot]
version = "0.12"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.serde_v8]
version = "0.231"
optional = true
[dependencies.thread_local]
version = "1.1"
[dependencies.tokio]
version = "1"
features = [
"rt",
"sync",
]
[dependencies.tower]
version = "0.4"
features = ["util"]
optional = true
[dependencies.tower-http]
version = "0.5"
features = [
"fs",
"compression-br",
"trace",
"timeout",
]
optional = true
[dependencies.tracing]
version = "0.1"
[dev-dependencies.criterion]
version = "0.5"
features = ["async_tokio"]
[dev-dependencies.tempfile]
version = "3.10"
[dev-dependencies.tokio]
version = "1"
features = [
"full",
"test-util",
]
[dev-dependencies.tracing-subscriber]
version = "0.3"
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
strip = true