product-os-router 0.0.35

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.
Documentation
[package]
name = "product-os-router"
version = "0.0.35" # version - The version of the package.
authors = ["Jeremy de Oliveira-Kumar <eremyj@gmail.com>"] # authors - The authors of the package.
edition = "2021" # edition - The Rust edition. 2021
rust-version = "1.69" # rust-version - The minimal supported Rust version. min 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." # description - A description of the package.
# documentation = "" # documentation - URL of the package documentation.
readme = "readme.md" # readme - Path to the package’s README file.  Use https://www.makeareadme.com/
# homepage = "" # homepage - URL of the package homepage.
# repository = "" # repository - URL of the package source repository.
license = "AGPL-3.0-only" # license - The package license.
# license-file = "license.txt" # license-file - Path to the text of the license.  Use https://choosealicense.com/
keywords = ["product-os"] # keywords - Keywords for the package.
categories = [] # categories - Categories of the package. https://crates.io/category_slugs
# workspace = "" # workspace - Path to the workspace for the package.
build = false # build - Path to the package build script.  default "build.rs" or specify
# links = "" # links - Name of the native library the package links with.
exclude = [] # exclude - Files to exclude when publishing.
include = [] # include - Files to include when publishing.
# publish = [] # publish - Can be used to prevent publishing the package. false to prevent publish, list of registries otherwise
# default-run = "" # default-run - The default binary to run by cargo run.
autobins = true # autobins - Disables binary auto discovery.
autoexamples = true # autoexamples - Disables example auto discovery.
autotests = true # autotests - Disables test auto discovery.
autobenches = true # autobenches - Disables bench auto discovery.
resolver = "2" # resolver - Sets the dependency resolver to use.  Use 2 with 2021, 1 prior

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
no-std-compat = { version = "0.4.1", features = [ "alloc" ], optional = false }

# Core dependencies
axum = { version = "0.8.1", features = ["original-uri", "ws", "json", "form", "multipart", "matched-path", "query"], default-features = false, optional = true } # Web framework using hyper and tower
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"]
    # "product-os-http",
    # "product-os-tower", "product-os-tower/util", "product-os-tower/make",
    # "product-os-tower-service", "product-os-tower-layer"] # No yet no_std "axum", "axum-extra/query"
std = ["axum", "axum-extra/query"]

ws = []
sse = []
sessions = ["axum-extra"]
# cors = ["product-os-tower-http/cors"]
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]