Cargo Features

[dependencies]
product-os-server = { version = "0.0.39", default-features = false, features = ["core", "dual_server", "executor_tokio", "tls", "cors", "cspolicy", "csrf", "ws", "custom", "controller", "postgres_store", "sqlite_store", "redis_key_value_store", "memory_key_value_store", "file_key_value_store", "redis_queue_store", "memory_queue_store", "compression", "middleware", "support_feature_service", "extract_headers", "async-trait"] }
default = core

The core feature is set by default whenever product-os-server is added without default-features = false somewhere in the dependency tree.

core default = axum, axum-macros, axum-server, hyper, parking_lot, tracing, tracing-subscriber, url
dual_server = axum-server-dual-protocol, tls, tokio

Affects dual_server::create_dual_service_with_axum

executor_tokio

Enables exec_tokio of product-os-async-executor

Affects https_server::create_https_service_with_axum

tls dual_server? = hyper-rustls, rustls

Enables tls-rustls of axum-server ^0.6.0, http2 of hyper-rustls

Affects https_server::create_https_service_with_axum

cors

Enables cors of product-os-router and tower-http ^0.5.2

cspolicy = csp
csrf = axum_csrf

Enables layer of axum_csrf

ws

Enables ws of product-os-router

custom
controller = product-os-capabilities, product-os-command-control

Enables typed-header of axum-extra, relational_store of product-os-store

Affects command_handler::command_responder, feature_handler::feature_responder

postgres_store

Enables postgres_store of product-os-command-control, postgres_relational_store of product-os-store

sqlite_store

Enables sqlite_store of product-os-command-control, sqlite_relational_store of product-os-store

redis_key_value_store

Enables redis_key_value_store of product-os-command-control and product-os-store

memory_key_value_store

Enables memory_key_value_store of product-os-command-control and product-os-store

file_key_value_store

Enables file_key_value_store of product-os-command-control and product-os-store

redis_queue_store

Enables redis_queue_store of product-os-store

memory_queue_store

Enables memory_queue_store of product-os-store

compression

Enables compression-full and decompression-full of tower-http ^0.5.2

middleware

Enables middleware of product-os-router

support_feature_service

Enables feature_service of product-os-capabilities

extract_headers

Enables typed-header of axum-extra

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

async-trait implicit feature

Enables async-trait

Core dependencies

parking_lot core
tokio dual_server?

Enables tokio

For async capabilities

hyper core

Enables hyper

For web server capability

hyper-rustls tls?
axum core

Enables axum

Web framework using hyper and tower

axum-macros core
url core
rustls tls?

Enables rustls ^0.21.11

TLS support
TLS library for Rust

csp cspolicy?

Enables csp

Optional packages supported by features enabled

axum_csrf csrf?
axum-server core tls?

Enables axum-server ^0.6.0

axum-extra controller? extract_headers?
tower-http compression? cors?

Enables tower-http ^0.5.2

axum-server-dual-protocol dual_server?

Enables axum-server-dual-protocol ^0.6.0

tracing core

Enables tracing

Logging support

tracing-subscriber core
product-os-command-control controller? file_key_value_store? memory_key_value_store? postgres_store? redis_key_value_store? sqlite_store?
product-os-store controller? file_key_value_store? memory_key_value_store? memory_queue_store? postgres_store? redis_key_value_store? redis_queue_store? sqlite_store?
product-os-capabilities controller? support_feature_service?