[package]
name = "flatbed"
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"]
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
rust-version.workspace = true
[features]
default = []
openapi = ["utoipa"]
telemetry = []
prometheus = ["telemetry", "dep:prometheus"]
nats = ["async-nats", "futures"]
k8s = ["kube", "futures"]
[dependencies]
flatbuffers = "25.2.10"
inventory = "0.3"
include_dir = "0.7"
serde = { version = "1.0", features = ["derive"] }
flatbed_macros = { path = "../flatbed_macros", version = "0.0.6" }
utoipa = { version = "5", optional = true }
uuid = { version = "1.11", features = ["v4"] }
async-nats = { version = "0.38", optional = true }
futures = { version = "0.3", optional = true }
kube = { version = "1.1", features = ["runtime", "client"], optional = true }
prometheus = { version = "0.14", optional = true }
hyper = { version = "1.4", features = ["server", "http1", "http2"] }
hyper-util = { version = "0.1", features = ["tokio", "server", "http1", "http2"] }
http-body-util = "0.1"
http = "1.2"
bytes = "1.9"
tokio = { version = "1.44", features = ["rt-multi-thread", "net", "signal", "macros", "time", "sync", "fs"] }
tokio-util = { version = "0.7", features = ["rt"] }
serde_json = "1.0"
tracing = { workspace = true }
[build-dependencies]
flatbed_build = { path = "../flatbed_build", version = "0.0.6" }
[dev-dependencies]
utoipa = "5"
reqwest = { version = "0.12", features = ["json"] }
k8s-openapi = { version = "0.25", features = ["v1_32"] }
h2 = "0.4"
futures = "0.3"
[[test]]
name = "hyper_integration"
required-features = ["openapi", "telemetry"]
[[test]]
name = "worker_supervision"
required-features = ["telemetry", "prometheus"]
[[test]]
name = "register_macros"
required-features = ["nats", "k8s"]
[[test]]
name = "reconciler_tests"
required-features = ["nats", "k8s"]
[[test]]
name = "nats_broker"
required-features = ["nats", "openapi"]
[[test]]
name = "nats_route_broker"
required-features = ["nats", "openapi"]
[[test]]
name = "nats_request_broker"
required-features = ["nats", "openapi"]
[[test]]
name = "nats_connect_broker"
required-features = ["nats", "telemetry"]
[[test]]
name = "nats_route_registry"
required-features = ["nats", "openapi"]
[[test]]
name = "flatbuffer_enum"
required-features = ["openapi"]
[[test]]
name = "flatbuffer_traits"
required-features = ["openapi"]
[[test]]
name = "flatbuffer_table_vector"
required-features = ["openapi"]
[[test]]
name = "flatbuffer_union_bit_flags"
required-features = ["openapi"]
[[test]]
name = "type_registry"
required-features = ["openapi"]
[[test]]
name = "openapi_schema"
required-features = ["openapi"]
[[test]]
name = "serde_defaults"
required-features = ["openapi"]
[[example]]
name = "routes"
required-features = ["openapi"]
[[example]]
name = "fb_roundtrip"
required-features = ["openapi"]