Cargo Features

pywatt_sdk has no features set by default.

[dependencies]
pywatt_sdk = { version = "0.2.9", features = ["proc_macros", "router_ext", "metrics", "discover_endpoints", "builder", "jwt_auth", "database", "postgres", "mysql", "sqlite", "cache", "redis_cache", "memcached", "file_cache", "ipc", "integration_tests", "jwt_auth_v2", "tracing", "cors", "secret_client_logging", "macros"] }
proc_macros macros? = proc-macro2, quote, syn

Feature for enabling the proc-macro functionality (renamed from 'macros')

Affects pywatt_sdk::pywatt_macros, pywatt_sdk::macros, macros::module, pywatt_macros::proc_macro_impl

router_ext metrics?

Existing features

Affects ext::RouterExt

metrics = prometheus, router_ext

Added dep:metrics

Enables metrics

Optional, tied to 'metrics' feature

Affects error::MetricsError, ext::RouterExt.with_prometheus_metrics

discover_endpoints

Affects router_discovery::announce_from_router

builder

Affects builder::AppStateBuilder

jwt_auth ipc? jwt_auth_v2? = jsonwebtoken, tower

Affects pywatt_sdk::jwt_auth, pywatt_sdk::jwt_auth_compat

database mysql? postgres? sqlite? = sqlx

Database features

Affects pywatt_sdk::database, model_manager::config, sdk_integration::ModelManager

postgres = database

Enables postgres of sqlx

Database dependencies (optional)

mysql = database

Enables mysql of sqlx

sqlite = database

Enables sqlite of sqlx

cache file_cache? memcached? redis_cache?

Cache features

Affects pywatt_sdk::cache

redis_cache = cache, redis

Affects redis::RedisCache

memcached = cache, memcache
file_cache = cache, fs2, tempfile
ipc = jwt_auth

IPC Service Proxy features

Affects database::proxy_connection, jwt_auth::proxy_adapter

integration_tests

Integration tests - enable when you want to run tests that require actual databases or caches

jwt_auth_v2 = jwt_auth

Add feature for new JWT auth. This enables the
additional type-parametrized JWT auth functionality.

tracing

Add feature for tracing integration

cors

Add feature for CORS support

Affects ext::RouterExt.with_cors_preflight

secret_client_logging

Secret client needs stdout logging feature? Let's assume yes for now.

macros = proc_macros

NOTE: pywatt_macros crate itself is no longer listed as optional dependency. Its functionality is enabled via the proc_macros feature flag. The macros feature name is kept for compatibility if needed, pointing to the new feature.

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.

prometheus metrics?

Enables prometheus

Used by metrics feature

jsonwebtoken jwt_auth?

Enables jsonwebtoken

Used by jwt_auth feature

tower jwt_auth?

Enables tower

Used by jwt_auth feature

sqlx database? mysql? postgres? sqlite?
redis redis_cache?

Enables redis ^0.30.0

Cache dependencies (optional)

memcache memcached?
fs2 file_cache?

Enables fs2

For file-based cache locking

tempfile file_cache?

Enables tempfile

For cache tests

proc-macro2 proc_macros?

Enables proc-macro2

Proc-macro dependencies moved from pywatt_macros (conditional)

quote proc_macros?
syn proc_macros?