[package]
name = "product-os-router"
version = "0.0.35"
authors = ["Jeremy de Oliveira-Kumar <eremyj@gmail.com>"]
edition = "2021"
rust-version = "1.69"
description = "Product OS : Router provides a fully featured router leveraging Axum and Tower with a suite of helper methods to make it easier to create an HTTP server, HTTPS server, web socket server and even server-sent events server."
readme = "readme.md"
license = "AGPL-3.0-only"
keywords = ["product-os"]
categories = []
build = false
exclude = []
include = []
autobins = true
autoexamples = true
autotests = true
autobenches = true
resolver = "2"
[dependencies]
no-std-compat = { version = "0.4.1", features = [ "alloc" ], optional = false }
axum = { version = "0.8.1", features = ["original-uri", "ws", "json", "form", "multipart", "matched-path", "query"], default-features = false, optional = true }
axum-extra = { version = "0.10.0", features = [], default-features = false, optional = true }
axum-macros = { version = "0.5.0", features = [], default-features = false, optional = true }
hyper = { version = "1.5.2", features = [], default-features = false, optional = true }
async-trait = { version = "0.1.85", features = [], default-features = false, optional = true }
futures = { version = "0.3.31", features = [], default-features = false, optional = true }
regex = { version = "1.11.1", features = [], default-features = false, optional = true }
futures-util = { version = "0.3.31", features = [], default-features = false, optional = false }
pin-project = { version = "1.1.8", features = [], default-features = false, optional = false }
tower = { version = "0.5.2", features = [], default-features = false, optional = true }
tower-http = { version = "0.6.2", features = [], default-features = false, optional = true }
tower-service = { version = "0.3.3", features = [], default-features = false, optional = true }
tower-layer = { version = "0.3.3", features = [], default-features = false, optional = true }
product-os-request = { version = ">= 0.0.1", features = [], default-features = false, optional = true }
product-os-http = { version = ">= 0.0.1", features = [], default-features = false, optional = true }
product-os-http-body = { version = ">= 0.0.1", features = ["axum"], default-features = false, optional = true }
[patch.crates-io]
product-os-request = { path = "../product-os-request", features = [], default-features = false, optional = true }
product-os-http = { path = "../product-os-http", features = [], default-features = false, optional = true }
product-os-http-body = { path = "../product-os-http-body", features = [], default-features = false, optional = true }
[features]
default = ["no-std-compat/std", "core", "std"]
all = ["default", "ws", "sse", "sessions", "cors"]
core = ["product-os-request/method_std", "product-os-request/response_std", "async-trait",
"product-os-http/std", "product-os-http-body/std",
"tower", "tower/util", "tower/make", "tower-service", "tower-layer",
"regex", "regex/unicode-perl", "regex/unicode-case"]
std = ["axum", "axum-extra/query"]
ws = []
sse = []
sessions = ["axum-extra"]
cors = ["tower-http/cors"]
debug = ["axum-macros"]
middleware = ["product-os-http/std", "futures", "hyper", "product-os-request/method_std", "product-os-request/response_std", "product-os-http-body/std"]
[workspace]