Cargo Features
[dependencies]
foundations = { version = "4.3.0", default-features = false, features = ["platform-common-default", "server-client-common-default", "settings", "settings_deny_unknown_fields_by_default", "telemetry", "client-telemetry", "telemetry-server", "telemetry-otlp-grpc", "tokio-runtime-metrics", "logging", "tracing", "metrics", "memory-profiling", "security", "jemalloc", "cli", "testing", "panic_on_too_much_logger_nesting", "async-stream", "local-ip-address", "lock_api", "log", "parking_lot_core", "regex", "thiserror", "neli", "neli-proc-macros"] }
- default = platform-common-default, security
-
Default set of features.
- platform-common-default default = cli, jemalloc, panic_on_too_much_logger_nesting, settings, settings_deny…fields_by_default, telemetry, testing
-
All non platform-specific features
- server-client-common-default = client-telemetry, settings, testing
-
A subset of features that can be used both on server and client sides. Useful for libraries that can be used either way.
- settings cli? platform-common-default server-client-common-default?
-
Enables serializable documented settings functionality.
Enables foundations-macros, indexmap, serde, serde_path_to_error, serde_yaml ^0.8.26, and yaml-merge-keys ^0.5
Affects
foundations::settings
… - settings_deny_unknown_fields_by_default platform-common-default
-
Whether settings structs annotated with
#[settings]
will, by default, error on unknown fields.Enables settings_deny…fields_by_default of optional foundations-macros
- telemetry platform-common-default = client-telemetry, logging, memory-profiling, metrics, telemetry-otlp-grpc, telemetry-server, tracing
-
Enables all the telemetry-related features ("logging", "metrics", "tracing", "telemetry-server").
Enables futures-util
Affects
foundations::telemetry
… - client-telemetry server-client-common-default? telemetry? = logging, metrics, tracing
-
Enables a subset of telemetry features suitable for usage in clients.
Enables futures-util
- telemetry-server telemetry?
-
Enables the telemetry server.
Enables hyper ^0.14, percent-encoding, and socket2
Affects
telemetry::TelemetryConfig.custom_server_routes
,settings::TelemetrySettings.server
… - telemetry-otlp-grpc telemetry?
-
Enables telemetry reporting over gRPC
Enables hyper ^0.14, tokio, and tonic ^0.11.0
- tokio-runtime-metrics = metrics
-
Enables experimental tokio runtime metrics
Enables serde, slab, and tokio
Affects
telemetry::tokio_runtime_metrics
… - logging client-telemetry? telemetry?
-
Enables logging functionality.
Enables futures-util, governor ^0.6, once_cell, parking_lot, serde, slog, slog-async, slog-json, slog-term, and thread_local
Affects
telemetry::log
,settings::TelemetrySettings.logging
,foundations::telemetry
… - tracing client-telemetry? telemetry?
-
Enables distributed tracing functionality.
Enables cf-rustracing, cf-rustracing-jaeger, foundations-macros, futures-util, governor ^0.6, once_cell, opentelemetry-proto ^0.5.0, parking_lot, rand, serde, slab, thread_local, and tokio
Affects
telemetry::tracing
,settings::TelemetrySettings.tracing
,foundations::telemetry
… - metrics client-telemetry? telemetry? tokio-runtime-metrics?
-
Enables metrics functionality.
Enables erased-serde ^0.3.28, foundations-macros, futures-util, once_cell, parking_lot, prometheus, prometheus-client ^0.18.1, prometools, serde, and serde_with
Affects
log::log_volume
,telemetry::metrics
,settings::TelemetrySettings.metrics
,foundations::telemetry
… - memory-profiling telemetry? = jemalloc
-
Enables memory profiling features (require
jemalloc
feature to be enabled)Enables once_cell, tempfile, tikv-jemalloc-ctl ^0.5, and tokio
Affects
settings::TelemetrySettings.memory_profiler
… - security default
-
Enables security-related features
Enables bindgen ^0.68.1, cc, and once_cell
Affects
foundations::security
… - jemalloc memory-profiling? platform-common-default
-
Enables jemalloc as a memory allocator
Enables tikv-jemallocator ^0.5
Affects
foundations::JEMALLOC_MEMORY_ALLOCATOR
… - cli platform-common-default = settings
-
Enables command line interface functionality.
Enables clap
Affects
foundations::cli
… - testing platform-common-default server-client-common-default?
-
Enables testing-related functionality.
Enables foundations-macros
- panic_on_too_much_logger_nesting platform-common-default
-
Enables panicking when too much nesting is reached on the logger
Features from optional dependencies
- async-stream implicit feature
-
Enables async-stream
needed for minver purposes
- local-ip-address implicit feature
-
Enables local-ip-address ^0.5.7
local-ip-address:
Retrieve system's local IP address and Network Interfaces/Adapters on Linux, macOS and Windows
- lock_api implicit feature
-
Enables lock_api
lock_api:
Wrappers to create fully-featured Mutex and RwLock types. Compatible with no_std.
- log implicit feature
-
Enables log
log:
A lightweight logging facade for Rust
- parking_lot_core implicit feature
-
Enables parking_lot_core
parking_lot_core:
An advanced API for creating custom synchronization primitives
- regex implicit feature
- thiserror implicit feature
-
Enables thiserror ^1.0.56
thiserror:
derive(Error)
- neli linux implicit feature
-
Enables neli
neli:
Type safe netlink library written in Rust
- neli-proc-macros linux implicit feature
-
Enables neli-proc-macros
neli-proc-macros:
Procedural macros for neli