Cargo Features
[dependencies]
tenuo = { version = "0.1.0-beta.11", default-features = false, features = ["control-plane", "data-plane", "python", "python-extension", "server", "http-client", "cel"] }
============================================================================
Feature Flags for Deployment Flexibility
============================================================================
- default = control-plane, data-plane
-
These default features are set whenever
tenuois added withoutsomewhere in the dependency tree.default-features = false - control-plane default
-
Control Plane - for the central authority service
Required by tenuo, tenuo-control and tenuo-orchestrator binaries
- data-plane default
-
Data Plane - for edge agents and verifiers
Required by tenuo, tenuo-authorizer, tenuo-orchestrator and tenuo-worker binaries
- python python-extension? = pyo3
-
Python bindings
Affects
tenuo::python… - python-extension = python
-
Enables extension-module of pyo3 ^0.24.1
Python bindings (optional)
Note: extension-module must NOT be here - it goes in the final cdylib (tenuo-python)
abi3-py38 allows building without linking Python at compile time - server = axum, reqwest, tokio, tower, tracing, tracing-subscriber
-
Server features (adds HTTP/gRPC + structured logging dependencies)
Includes reqwest for control plane heartbeat functionalityAffects
tenuo::heartbeat…Required by tenuo-authorizer and tenuo-control binaries
- http-client = reqwest
-
HTTP client (for demo agents that call remote services)
Required by the tenuo-orchestrator binary
- cel = cel-interpreter, moka
-
CEL (Common Expression Language) support for advanced constraints Adds cel-interpreter and moka (cache) dependencies
Affects
cel::compile,cel::evaluate,cel::evaluate_with_value_context,cel::clear_cache,cel::cache_size,cel::create_context…
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.
Note: Add "http-client" feature to enable remote authorizer mode
============================================================================
Dependencies
============================================================================
- reqwest http-client? server?
-
Enables reqwest ^0.11
HTTP client (optional - only needed for demo binaries)
- cel-interpreter cel?
-
Enables cel-interpreter
CEL expression evaluation (optional - reduces dependencies for most users)
- moka cel?
-
Enables moka
Caching for CEL compiled programs (optional - only with CEL)
- pyo3 python? python-extension?
-
Enables pyo3 ^0.24.1
- tokio server?
-
Enables tokio
Server dependencies (optional)
- axum server?
- tower server?
-
Enables tower ^0.4
- tracing server?
- tracing-subscriber server?