[package] name = "product-os-server" version = "0.0.39" # version - The version of the package. authors = ["Jeremy de Oliveira-Kumar "] # 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 : Server provides a full functioning advanced server capable of acting as a web server, command and control distributed network, authentication server, crawling server and more. Fully featured with high level of flexibility." # 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 prio # 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 } cfg-if = { version = "1.0.0", features = [], default-features = false, optional = false } # Core dependencies async-trait = { version = "0.1.53", features = [], default-features = false, optional = true } parking_lot = { version = "0.12.1", features = ["send_guard"], default-features = false, optional = true } futures = { version = "0.3.19", features = [], default-features = false, optional = false } tokio = { version = "1", features = [], default-features = false, optional = true } # For async capabilities # embassy-executor = { version = "0.3.2", features = ["defmt", "nightly", "integrated-timers", "arch-cortex-m", "executor-thread"], optional = true } serde = { version = "1.0.132", features = ["derive"], default-features = false, optional = false } # Support for serialize/deserialize objects serde_json = { version = "1.0.73", features = ["alloc"], default-features = false, optional = false } # Support for JSON structures hyper = { version = "1.3.1", features = ["client"], default-features = false, optional = true } # For web server capability hyper-rustls = { version = "0.27.1", features = [], default-features = false, optional = true } axum = { version = "0.7.5", features = [], default-features = false, optional = true } # Web framework using hyper and tower axum-macros = { version = "0.4.1", features = [], default-features = false, optional = true } url = { version = "2.2.2", features = ["serde"], default-features = false, optional = true } # TLS support rustls = { version = "0.21.11", default-features = false, optional = true } # TLS library for Rust # Optional packages supported by features enabled csp = { version = "2.0.0", features = [], default-features = false, optional = true } axum_csrf = { version = "0.10.0", default-features = false, optional = true } axum-server = { version = "0.6.0", default-features = false, optional = true } axum-extra = { version = "0.9.3", default-features = false, optional = true } tower-http = { version = "0.5.2", default-features = false, optional = true } axum-server-dual-protocol = { version = "0.6.0", default-features = false, optional = true } # Logging support tracing = { version = "0.1.29", default-features = false, optional = true } tracing-subscriber = { version = "0.3.4", default-features = false, optional = true } product-os-net = { version = ">= 0.0.1", features = [], default-features = true, optional = false } product-os-router = { version = ">= 0.0.1", features = [], default-features = true, optional = false } product-os-configuration = { version = ">= 0.0.1", features = [], default-features = true, optional = false } product-os-request = { version = ">= 0.0.1", features = [], default-features = true, optional = false } product-os-security = { version = ">= 0.0.1", features = ["certificates", "file"], default-features = true, optional = false } product-os-async-executor = { version = ">= 0.0.1", features = ["hyper_executor"], default-features = false, optional = false } product-os-command-control = { version = ">= 0.0.1", features = [], default-features = true, optional = true } product-os-store = { version = ">= 0.0.1", features = [], default-features = true, optional = true } product-os-capabilities = { version = ">= 0.0.1", features = [], default-features = true, optional = true } [patch.crates-io] product-os-net = { path = "../product-os-net", features = [], default-features = true, optional = false } product-os-router = { path = "../product-os-router", features = [], default-features = true, optional = false } product-os-configuration = { path = "../product-os-configuration", features = [], default-features = true, optional = false } product-os-request = { path = "../product-os-request", features = [], default-features = true, optional = false } product-os-security = { path = "../product-os-security", features = ["certificates", "file"], default-features = true, optional = false } product-os-async-executor = { path = "../product-os-async-executor", features = ["hyper_executor"], default-features = false, optional = false } product-os-command-control = { path = "../product-os-command-control", features = [], default-features = true, optional = true } product-os-store = { path = "../product-os-store", features = [], default-features = true, optional = true } product-os-capabilities = { path = "../product-os-capabilities", features = [], default-features = true, optional = true } [features] default = ["core"] core = ["parking_lot", "hyper", "axum", "axum-server", "axum-macros", "tracing", "tracing-subscriber", "url"] dual_server = ["tls", "tokio", "axum-server-dual-protocol"] executor_tokio = ["product-os-async-executor/exec_tokio", "product-os-async-executor/default"] # all = ["default", "controller", "tls", "ws", "sse", "cors"] tls = ["axum-server/tls-rustls", "hyper-rustls", "hyper-rustls/http2", "rustls"] cors = ["tower-http/cors", "product-os-router/cors"] cspolicy = ["csp"] csrf = ["axum_csrf", "axum_csrf/layer"] ws = ["product-os-router/ws"] custom = [] controller = ["product-os-command-control", "product-os-command-control", "product-os-store/relational_store", "product-os-capabilities", "axum-extra/typed-header"] postgres_store = ["product-os-store/postgres_relational_store", "product-os-command-control/postgres_store"] sqlite_store = ["product-os-store/sqlite_relational_store", "product-os-command-control/sqlite_store"] redis_key_value_store = ["product-os-store/redis_key_value_store", "product-os-command-control/redis_key_value_store"] memory_key_value_store = ["product-os-store/memory_key_value_store", "product-os-command-control/memory_key_value_store"] file_key_value_store = ["product-os-store/file_key_value_store", "product-os-command-control/file_key_value_store"] redis_queue_store = ["product-os-store/redis_queue_store"] memory_queue_store = ["product-os-store/memory_queue_store"] compression = ["tower-http/compression-full", "tower-http/decompression-full"] middleware = ["product-os-router/middleware"] support_feature_service = ["product-os-capabilities/feature_service"] extract_headers = ["axum-extra/typed-header"] [workspace]