typeway-server 0.1.0

Server runtime for the typeway type-level web framework
Documentation
[package]
name = "typeway-server"
description = "Server runtime for the typeway type-level web framework"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
keywords.workspace = true
categories.workspace = true
readme = "../README.md"

[features]
default = []
openapi = ["dep:typeway-openapi"]
axum-interop = ["dep:axum"]
grpc = ["dep:typeway-grpc", "typeway-grpc/grpc-native"]
grpc-proto-binary = ["grpc", "typeway-grpc/proto-binary"]
protobuf = ["dep:typeway-protobuf", "grpc"]
ws = ["dep:tokio-tungstenite", "dep:sha1_smol", "dep:base64"]
tls = ["dep:tokio-rustls", "dep:rustls-pemfile"]
multipart = ["dep:multer"]

[dependencies]
typeway-core = { path = "../typeway-core", version = "0.1.0" }
typeway-grpc = { path = "../typeway-grpc", version = "0.1.0", optional = true }
typeway-protobuf = { path = "../typeway-protobuf", version = "0.1.0", optional = true }
typeway-openapi = { path = "../typeway-openapi", version = "0.1.0", optional = true }
hyper = { version = "1", features = ["full"] }
hyper-util = { version = "0.1", features = ["tokio", "service", "http1", "http2", "server-auto"] }
tower = { version = "0.5", features = ["util"] }
tower-service = "0.3"
tower-layer = "0.3"
tower-http = { version = "0.6", features = ["trace", "cors", "timeout", "compression-gzip", "compression-deflate", "request-id", "propagate-header", "set-header", "fs"] }
uuid = { version = "1", features = ["v4"] }
tokio-tungstenite = { version = "0.26", optional = true }
sha1_smol = { version = "1", optional = true }
base64 = { version = "0.22", optional = true }
tokio-rustls = { version = "0.26", optional = true }
rustls-pemfile = { version = "2", optional = true }
multer = { version = "3", optional = true }
axum = { version = "0.8", optional = true }
tokio = { version = "1", features = ["full"] }
http = "1"
http-body = "1"
http-body-util = "0.1"
bytes = "1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_urlencoded = "0.7"
indexmap = "2"
futures = "0.3"
tracing = "0.1"
pin-project-lite = "0.2"
smallvec = "1"
parking_lot = "0.12"
matchit = "0.8"

[dev-dependencies]
tokio = { version = "1", features = ["full", "test-util"] }
typeway-macros = { path = "../typeway-macros" }
typeway-openapi = { path = "../typeway-openapi" }
typeway-grpc = { path = "../typeway-grpc", features = ["test-client"] }
reqwest = { version = "0.12", features = ["json"] }
serde_json = "1"
axum = "0.8"
proptest = "1"

[lints]
workspace = true