[package]
edition = "2021"
rust-version = "1.88"
name = "typeway-server"
version = "0.1.0"
authors = ["Josh Burgess"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Server runtime for the typeway type-level web framework"
homepage = "https://github.com/joshburgess/typeway"
documentation = "https://docs.rs/typeway"
readme = "README.md"
keywords = [
"web",
"framework",
"type-level",
"openapi",
"grpc",
]
categories = [
"web-programming",
"web-programming::http-server",
"asynchronous",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/joshburgess/typeway"
[features]
axum-interop = ["dep:axum"]
default = []
grpc = [
"dep:typeway-grpc",
"typeway-grpc/grpc-native",
]
grpc-proto-binary = [
"grpc",
"typeway-grpc/proto-binary",
]
multipart = ["dep:multer"]
openapi = ["dep:typeway-openapi"]
protobuf = [
"dep:typeway-protobuf",
"grpc",
]
tls = [
"dep:tokio-rustls",
"dep:rustls-pemfile",
]
ws = [
"dep:tokio-tungstenite",
"dep:sha1_smol",
"dep:base64",
]
[lib]
name = "typeway_server"
path = "src/lib.rs"
[[example]]
name = "auth"
path = "examples/auth.rs"
[[example]]
name = "crud"
path = "examples/crud.rs"
[[example]]
name = "custom_extractors"
path = "examples/custom_extractors.rs"
[[example]]
name = "hello"
path = "examples/hello.rs"
[[example]]
name = "middleware"
path = "examples/middleware.rs"
[[example]]
name = "streaming"
path = "examples/streaming.rs"
[[example]]
name = "users"
path = "examples/users.rs"
[[test]]
name = "axum_interop_integration"
path = "tests/axum_interop_integration.rs"
[[test]]
name = "body_limits_integration"
path = "tests/body_limits_integration.rs"
[[test]]
name = "effects_integration"
path = "tests/effects_integration.rs"
[[test]]
name = "fuzz_tests"
path = "tests/fuzz_tests.rs"
[[test]]
name = "grpc_direct_test"
path = "tests/grpc_direct_test.rs"
[[test]]
name = "grpc_integration"
path = "tests/grpc_integration.rs"
[[test]]
name = "grpc_native_integration"
path = "tests/grpc_native_integration.rs"
[[test]]
name = "middleware_integration"
path = "tests/middleware_integration.rs"
[[test]]
name = "multi_version_integration"
path = "tests/multi_version_integration.rs"
[[test]]
name = "negotiate_integration"
path = "tests/negotiate_integration.rs"
[[test]]
name = "openapi_integration"
path = "tests/openapi_integration.rs"
[[test]]
name = "panic_safety_integration"
path = "tests/panic_safety_integration.rs"
[[test]]
name = "routing_integration"
path = "tests/routing_integration.rs"
[[test]]
name = "secure_headers_integration"
path = "tests/secure_headers_integration.rs"
[[test]]
name = "typed_wrappers_integration"
path = "tests/typed_wrappers_integration.rs"
[[test]]
name = "typed_ws_test"
path = "tests/typed_ws_test.rs"
[dependencies.axum]
version = "0.8"
optional = true
[dependencies.base64]
version = "0.22"
optional = true
[dependencies.bytes]
version = "1"
[dependencies.futures]
version = "0.3"
[dependencies.http]
version = "1"
[dependencies.http-body]
version = "1"
[dependencies.http-body-util]
version = "0.1"
[dependencies.hyper]
version = "1"
features = ["full"]
[dependencies.hyper-util]
version = "0.1"
features = [
"tokio",
"service",
"http1",
"http2",
"server-auto",
]
[dependencies.indexmap]
version = "2"
[dependencies.matchit]
version = "0.8"
[dependencies.multer]
version = "3"
optional = true
[dependencies.parking_lot]
version = "0.12"
[dependencies.pin-project-lite]
version = "0.2"
[dependencies.rustls-pemfile]
version = "2"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.serde_urlencoded]
version = "0.7"
[dependencies.sha1_smol]
version = "1"
optional = true
[dependencies.smallvec]
version = "1"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.tokio-rustls]
version = "0.26"
optional = true
[dependencies.tokio-tungstenite]
version = "0.26"
optional = true
[dependencies.tower]
version = "0.5"
features = ["util"]
[dependencies.tower-http]
version = "0.6"
features = [
"trace",
"cors",
"timeout",
"compression-gzip",
"compression-deflate",
"request-id",
"propagate-header",
"set-header",
"fs",
]
[dependencies.tower-layer]
version = "0.3"
[dependencies.tower-service]
version = "0.3"
[dependencies.tracing]
version = "0.1"
[dependencies.typeway-core]
version = "0.1.0"
[dependencies.typeway-grpc]
version = "0.1.0"
optional = true
[dependencies.typeway-openapi]
version = "0.1.0"
optional = true
[dependencies.typeway-protobuf]
version = "0.1.0"
optional = true
[dependencies.uuid]
version = "1"
features = ["v4"]
[dev-dependencies.axum]
version = "0.8"
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.reqwest]
version = "0.12"
features = ["json"]
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.tokio]
version = "1"
features = [
"full",
"test-util",
]
[lints.clippy]
upper_case_acronyms = "allow"