Cargo Features

foundations = { version = "3.3.0", default-features = false, features = ["platform-common-default", "server-client-common-default", "metrics", "settings", "telemetry", "tokio-runtime-metrics", "client-telemetry", "telemetry-server", "logging", "tracing", "memory-profiling", "security", "jemalloc", "cli", "testing", "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, settings, 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.

metrics client-telemetry? telemetry? tokio-runtime-metrics?

Enables metrics functionality.

Enables erased-serde ^0.3.28, foundations-macros, 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

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

telemetry platform-common-default = logging, memory-profiling, metrics, telemetry-server, tracing

Enables all the telemetry-related features ("logging", "metrics", "tracing", "telemetry-server").

Affects foundations::telemetry

tokio-runtime-metrics = metrics

Enables serde, slab, and tokio

Affects telemetry::tokio_runtime_metrics

client-telemetry server-client-common-default? = logging, metrics, tracing

Enables a subset of telemetry features suitable for usage in clients.

telemetry-server telemetry?

Enables the telemetry server.

Enables futures-util, hyper ^0.14, routerify, and socket2

Affects telemetry::init_with_server, settings::TelemetrySettings.server

logging client-telemetry? telemetry?

Enables logging functionality.

Enables governor, once_cell, parking_lot, 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 crossbeam-channel, foundations-macros, governor, once_cell, parking_lot, rand, rustracing, rustracing_jaeger, and thread_local

Affects telemetry::tracing, settings::TelemetrySettings.tracing, foundations::telemetry

memory-profiling telemetry? = jemalloc

Enables memory profiling features (require jemalloc feature to be enabled)

Enables once_cell, tempfile, tikv-jemalloc-ctl, 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, memory_profiler::MemoryProfilerSettings.sandbox_profiling_syscalls

jemalloc memory-profiling? platform-common-default

Enables jemalloc as a memory allocator

Enables tikv-jemallocator


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

Features from optional dependencies

local-ip-address implicit feature

Enables local-ip-address ^0.5.7

needed for minver purposes

lock_api implicit feature

Enables lock_api


Wrappers to create fully-featured Mutex and RwLock types. Compatible with no_std.

log implicit feature

Enables log


A lightweight logging facade for Rust

parking_lot_core implicit feature

Enables parking_lot_core


An advanced API for creating custom synchronization primitives

regex implicit feature
thiserror implicit feature

Enables thiserror



neli linux implicit feature

Enables neli


Type safe netlink library written in Rust

neli-proc-macros linux implicit feature

Enables neli-proc-macros


Procedural macros for neli