Cargo Features

[dependencies]
rs-matter = { version = "0.1.0", default-features = false, features = ["std", "alloc", "os", "esp-idf", "backtrace", "nightly", "openssl", "mbedtls", "rustcrypto", "embassy-net"] }
default = mbedtls, os

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

std esp-idf? os = alloc, async-io, qrcode, rand

Enables std of optional esp-idf-sys ^0.33 and generic-queue-16 of embassy-time ^0.1.1

embassy-time:

Generic Queue with 16 timers

Affects mdns::astro, persist::fileio, network::std_stack, udp::async_io, epoch::sys_epoch, rand::sys_rand, builtin::MdnsRunBuffers, core::RunBuffers

alloc mbedtls openssl? rustcrypto? std?
os default = backtrace, env_logger, nix, std

Enables std of critical-section, embassy-sync ^0.2, and embassy-time ^0.1.1

critical-section:

Enable a critical-section implementation for platforms supporting std, based on std::sync::Mutex. If you enable this, the critical-section crate itself provides the implementation, you don't have to get another crate to to do it.

esp-idf = esp-idf-sys, rustcrypto, std
backtrace os
nightly

Affects handler::DataModelHandler, metadata::asynch

openssl = alloc, foreign-types, hmac, sha2

Enables openssl

crypto

Affects secure_channel::crypto_openssl

mbedtls default = alloc

Enables mbedtls ^0.9

rustcrypto esp-idf? = aes, alloc, ccm, crypto-bigint, elliptic-curve, hkdf, hmac, p256, pbkdf2, rand_core, sha2, x509-cert

Affects secure_channel::crypto_rustcrypto

embassy-net = smoltcp

Enables embassy-net ^0.1 and embassy-net-driver ^0.1

embassy-net:

embassy-net dependencies

Affects network::embassy_net_stack, udp::embassy_net, builtin::MdnsRunBuffers, core::RunBuffers

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.

smoltcp embassy-net?

Enables smoltcp ^0.10

rand std?

Enables rand

STD-only dependencies

qrcode std?

Enables qrcode ^0.12

Print QR code

async-io std?

Enables async-io =1.12

=1.12 for compatibility with ESP IDF

foreign-types openssl?

Enables foreign-types ^0.3.2

sha2 openssl? rustcrypto?

Enables sha2

rust-crypto

hmac openssl? rustcrypto?
pbkdf2 rustcrypto?
hkdf rustcrypto?
aes rustcrypto?
ccm rustcrypto?
p256 rustcrypto?
elliptic-curve rustcrypto?
crypto-bigint rustcrypto?

Enables crypto-bigint ^0.4

rand_core rustcrypto?
x509-cert rustcrypto?

Enables x509-cert

TODO: requires alloc

env_logger not espidf os

Enables env_logger ^0.10.0

esp-idf-sys espidf esp-idf?

Enables esp-idf-sys ^0.33

nix not espidf os

Enables nix ^0.26