Cargo Features

[dependencies]
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

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

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

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

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