[package]
edition = "2021"
name = "shaperail-runtime"
version = "0.7.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Actix-web runtime for Shaperail — HTTP, DB, cache, auth, jobs, events, storage"
homepage = "https://shaperail.io"
readme = "README.md"
keywords = [
"web",
"api",
"framework",
"code-generation",
]
categories = [
"web-programming::http-server",
"development-tools",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/shaperail/shaperail"
[features]
default = [
"graphql",
"grpc",
"wasm-plugins",
"multi-db",
"observability-otlp",
]
graphql = [
"dep:async-graphql",
"dep:async-graphql-actix-web",
]
grpc = [
"dep:tonic",
"dep:prost",
"dep:prost-types",
"dep:tonic-reflection",
"dep:tonic-health",
"dep:tokio-stream",
"dep:http-body",
"dep:http-body-util",
"dep:tower",
]
multi-db = ["dep:mongodb"]
observability-otlp = [
"dep:tracing-opentelemetry",
"dep:opentelemetry",
"dep:opentelemetry-otlp",
"dep:opentelemetry_sdk",
]
wasm-plugins = ["dep:wasmtime"]
[lib]
name = "shaperail_runtime"
path = "src/lib.rs"
[[test]]
name = "api_integration"
path = "tests/api_integration.rs"
[[test]]
name = "db_integration"
path = "tests/db_integration.rs"
[[test]]
name = "handler_tests"
path = "tests/handler_tests.rs"
[[test]]
name = "multi_db_tests"
path = "tests/multi_db_tests.rs"
[[bench]]
name = "health_response"
path = "benches/health_response.rs"
harness = false
[[bench]]
name = "throughput"
path = "benches/throughput.rs"
harness = false
[dependencies.actix-multipart]
version = "0.7"
[dependencies.actix-web]
version = "4"
[dependencies.actix-ws]
version = "0.4"
[dependencies.async-graphql]
version = "7"
features = [
"chrono",
"uuid",
"dynamic-schema",
]
optional = true
default-features = false
[dependencies.async-graphql-actix-web]
version = "7"
optional = true
default-features = false
[dependencies.async-trait]
version = "0.1"
[dependencies.bytestring]
version = "1"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.deadpool-redis]
version = "0.16"
[dependencies.futures-util]
version = "0.3"
[dependencies.hex]
version = "0.4"
[dependencies.hmac]
version = "0.12"
[dependencies.http]
version = "1"
[dependencies.http-body]
version = "1"
optional = true
[dependencies.http-body-util]
version = "0.1"
optional = true
[dependencies.image]
version = "0.25"
features = [
"png",
"jpeg",
"gif",
"webp",
]
default-features = false
[dependencies.indexmap]
version = "2"
features = ["serde"]
[dependencies.jsonwebtoken]
version = "10"
features = ["rust_crypto"]
[dependencies.mongodb]
version = "3"
optional = true
[dependencies.object_store]
version = "0.13.1"
features = [
"aws",
"gcp",
"azure",
]
[dependencies.opentelemetry]
version = "0.31"
optional = true
[dependencies.opentelemetry-otlp]
version = "0.31"
features = [
"trace",
"grpc-tonic",
]
optional = true
default-features = false
[dependencies.opentelemetry_sdk]
version = "0.31"
features = ["rt-tokio"]
optional = true
[dependencies.prometheus]
version = "0.14"
default-features = false
[dependencies.prost]
version = "0.13"
optional = true
[dependencies.prost-types]
version = "0.13"
optional = true
[dependencies.redis]
version = "0.26"
features = ["tokio-comp"]
[dependencies.sea-orm]
version = "1.1"
features = [
"sqlx-postgres",
"sqlx-mysql",
"sqlx-sqlite",
"runtime-tokio-rustls",
"with-uuid",
"with-chrono",
"with-json",
]
default-features = false
[dependencies.sea-query]
version = "0.32"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.10"
[dependencies.shaperail-core]
version = "0.7.0"
[dependencies.sqlx]
version = "0.8"
features = [
"runtime-tokio",
"postgres",
"mysql",
"sqlite",
"uuid",
"chrono",
"json",
"migrate",
]
default-features = false
[dependencies.thiserror]
version = "1"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.tokio-stream]
version = "0.1"
features = ["net"]
optional = true
[dependencies.tonic]
version = "0.12"
features = [
"transport",
"codegen",
"prost",
]
optional = true
default-features = false
[dependencies.tonic-health]
version = "0.12"
optional = true
[dependencies.tonic-reflection]
version = "0.12"
optional = true
[dependencies.tower]
version = "0.4"
optional = true
default-features = false
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-opentelemetry]
version = "0.32"
optional = true
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"json",
]
[dependencies.uuid]
version = "1"
features = [
"v4",
"serde",
]
[dependencies.wasmtime]
version = "41"
optional = true
[dev-dependencies.actix-rt]
version = "2"
[dev-dependencies.actix-web]
version = "4"
[dev-dependencies.criterion]
version = "0.8"
features = ["async_tokio"]
[dev-dependencies.serde_yaml]
version = "0.9"
[dev-dependencies.sqlx]
version = "0.8"
features = [
"runtime-tokio",
"postgres",
"mysql",
"sqlite",
"uuid",
"chrono",
"json",
"migrate",
"runtime-tokio",
"postgres",
"uuid",
"chrono",
"json",
"migrate",
"macros",
]
default-features = false
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = ["full"]
[dev-dependencies.wat]
version = "1"