Cargo Features

[dependencies]
memberlist-proto = { version = "0.1.0", default-features = false, features = ["std", "alloc", "rayon", "crc32", "xxhash32", "xxhash64", "xxhash3", "murmur3", "all-checksum", "lz4", "brotli", "snappy", "zstd", "all-compression", "encryption", "quickcheck", "serde", "tokio", "arbitrary", "metrics", "tracing"] }
default = std

These default features are set whenever memberlist-proto is added without default-features = false somewhere in the dependency tree.

Enables optional base64, bytes, const-varint, nodecraft, smallvec-wrapper, smol_str, thiserror, and triomphe

std default

Enables std of optional base64, bytes, const-varint, nodecraft, smallvec-wrapper, smol_str, thiserror, and triomphe

thiserror:

Std feature enables support for formatting std::path::{Path, PathBuf}
conveniently in an error message.

#[derive(Error, Debug)]
#[error("failed to create configuration file {path}")]
pub struct MyError {
pub path: PathBuf,
pub source: std::io::Error,
}

Without std, this would need to be written #[error("... {}", path.display())].

Affects data::Data.encode_to_vec, data::Data.encode_to_bytes, data::Data.encode_length_delimited_to_vec, data::Data.encode_length_delimited_to_bytes

alloc

Enables alloc of nodecraft

Affects data::Data.encode_to_vec, data::Data.encode_to_bytes, data::Data.encode_length_delimited_to_vec, data::Data.encode_length_delimited_to_bytes

rayon

Enables rayon and rayon of auto_enums

auto_enums:

https://docs.rs/rayon/1

crc32 all-checksum? = crc32fast

checksum related feature

xxhash32 all-checksum?

Enables xxh32 of xxhash-rust

xxhash-rust:

XXH32 makes sense only on 32bit platforms
Enable xxh32 implementation

xxhash64 all-checksum?

Enables xxh64 of xxhash-rust

xxhash-rust:

Enable xxh64 implementation

xxhash3 all-checksum?

Enables xxh3 of xxhash-rust

xxhash-rust:

Enable xxh3 implementation

murmur3 all-checksum?

Enables hash32

all-checksum = crc32, murmur3, xxhash3, xxhash32, xxhash64

enable all checksum algorithms

lz4 all-compression? = lz4_flex

compression related feature

brotli all-compression?

Enables brotli

compression

snappy all-compression?

Enables snap

zstd all-compression?

Enables zstd

all-compression = brotli, lz4, snappy, zstd

enable all compression algorithms

encryption = aead, aes-gcm, base64, cbc, rand

Affects memberlist-proto::encryption, encoder::EncryptionHint

quickcheck

Enables quickcheck, quickcheck of nodecraft

serde

Enables serde, serde of smallvec-wrapper and smol_str, serde of bytes, ipnet, and nodecraft

tokio

Enables tokio of agnostic-io

arbitrary

Enables arbitrary, arbitrary of nodecraft and smol_str

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.

aead encryption?

Enables aead

encryption

aes-gcm encryption?
base64 encryption?
cbc encryption?
rand encryption?
crc32fast crc32?

Enables crc32fast

checksum

xxhash-rust xxhash3? xxhash32? xxhash64?
lz4_flex lz4?
metrics implicit feature

Enables metrics

tracing & metrics

tracing implicit feature

Enables tracing

tracing:

Application-level tracing for Rust