[package]
edition = "2021"
rust-version = "1.80"
name = "flatbed"
version = "0.0.3"
authors = ["The flatbed contributors"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Rust HTTP framework with FlatBuffer codegen, built on Hyper"
readme = "README.md"
keywords = [
"http",
"flatbuffers",
"framework",
"hyper",
"web",
]
categories = [
"network-programming",
"web-programming::http-server",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/plonklabs/flatbed"
[features]
default = []
k8s = [
"kube",
"futures",
]
nats = [
"async-nats",
"futures",
]
openapi = ["utoipa"]
prometheus = [
"telemetry",
"dep:prometheus",
]
telemetry = []
[lib]
name = "flatbed"
path = "src/lib.rs"
[[example]]
name = "fb_roundtrip"
path = "examples/fb_roundtrip.rs"
required-features = ["openapi"]
[[example]]
name = "routes"
path = "examples/routes.rs"
required-features = ["openapi"]
[[test]]
name = "flatbuffer_enum"
path = "tests/flatbuffer_enum.rs"
required-features = ["openapi"]
[[test]]
name = "flatbuffer_table_vector"
path = "tests/flatbuffer_table_vector.rs"
required-features = ["openapi"]
[[test]]
name = "flatbuffer_traits"
path = "tests/flatbuffer_traits.rs"
required-features = ["openapi"]
[[test]]
name = "hyper_integration"
path = "tests/hyper_integration.rs"
required-features = [
"openapi",
"telemetry",
]
[[test]]
name = "nats_broker"
path = "tests/nats_broker.rs"
required-features = [
"nats",
"openapi",
]
[[test]]
name = "nats_connect_broker"
path = "tests/nats_connect_broker.rs"
required-features = [
"nats",
"telemetry",
]
[[test]]
name = "nats_request_broker"
path = "tests/nats_request_broker.rs"
required-features = [
"nats",
"openapi",
]
[[test]]
name = "nats_route_broker"
path = "tests/nats_route_broker.rs"
required-features = [
"nats",
"openapi",
]
[[test]]
name = "nats_route_registry"
path = "tests/nats_route_registry.rs"
required-features = [
"nats",
"openapi",
]
[[test]]
name = "openapi_schema"
path = "tests/openapi_schema.rs"
required-features = ["openapi"]
[[test]]
name = "reconciler_tests"
path = "tests/reconciler_tests.rs"
required-features = [
"nats",
"k8s",
]
[[test]]
name = "register_macros"
path = "tests/register_macros.rs"
required-features = [
"nats",
"k8s",
]
[[test]]
name = "schema_endpoint_empty"
path = "tests/schema_endpoint_empty.rs"
[[test]]
name = "serde_defaults"
path = "tests/serde_defaults.rs"
required-features = ["openapi"]
[[test]]
name = "static_serving"
path = "tests/static_serving.rs"
[[test]]
name = "type_registry"
path = "tests/type_registry.rs"
required-features = ["openapi"]
[[test]]
name = "worker_supervision"
path = "tests/worker_supervision.rs"
required-features = [
"telemetry",
"prometheus",
]
[dependencies.async-nats]
version = "0.38"
optional = true
[dependencies.bytes]
version = "1.9"
[dependencies.flatbed_macros]
version = "0.0.3"
[dependencies.flatbuffers]
version = "25.2.10"
[dependencies.futures]
version = "0.3"
optional = true
[dependencies.http]
version = "1.2"
[dependencies.http-body-util]
version = "0.1"
[dependencies.hyper]
version = "1.4"
features = [
"server",
"http1",
"http2",
]
[dependencies.hyper-util]
version = "0.1"
features = [
"tokio",
"server",
"http1",
"http2",
]
[dependencies.include_dir]
version = "0.7"
[dependencies.inventory]
version = "0.3"
[dependencies.kube]
version = "1.1"
features = [
"runtime",
"client",
]
optional = true
[dependencies.prometheus]
version = "0.14"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.tokio]
version = "1.44"
features = [
"rt-multi-thread",
"net",
"signal",
"macros",
"time",
"sync",
"fs",
]
[dependencies.tokio-util]
version = "0.7"
features = ["rt"]
[dependencies.tracing]
version = "0.1"
[dependencies.utoipa]
version = "5"
optional = true
[dependencies.uuid]
version = "1.11"
features = ["v4"]
[dev-dependencies.futures]
version = "0.3"
[dev-dependencies.h2]
version = "0.4"
[dev-dependencies.k8s-openapi]
version = "0.25"
features = ["v1_32"]
[dev-dependencies.reqwest]
version = "0.12"
features = ["json"]
[dev-dependencies.utoipa]
version = "5"
[build-dependencies.flatbed_build]
version = "0.0.3"