Cargo Features

[dependencies]
songbird = { version = "0.4.5", default-features = false, features = ["gateway", "driver", "rustls", "native", "twilight", "builtin-queue", "receive", "full-doc", "internals", "serenity", "simd-json"] }
default full-doc? = driver, gateway, rustls, serenity

Core features

gateway default

Enables async-trait, dashmap ^5, flume, once_cell, and parking_lot, sync and time of tokio

Affects config::Config.gateway_timeout, error::JoinError, error::JoinResult, songbird::join, songbird::shards

driver default

Enables tokio-tungstenite ^0.21, tokio-util, typemap_rev, typenum, url, and uuid, aead, aes-gcm, async-trait, audiopus, byteorder, bytes, chacha20poly1305, crypto_secretbox, discortp, flume, nohash-hasher, once_cell, parking_lot, rand, reqwest ^0.11, ringbuf, rubato ^0.15, rusty_pool, serde-aux, serenity-voice-model, socket2, stream_lib ^0.4.2, streamcatcher, symphonia, and symphonia-core, fs, io-util, macros, net, process, rt, sync and time of tokio

Affects config::Config.crypto_mode, config::Config.mix_mode, config::Config.preallocated_tracks, config::Config.driver_retry, config::Config.use_softclip, config::Config.driver_timeout, config::Config.codec_registry, config::Config.format_registry, config::Config.disposer, config::Config.scheduler, constants::VOICE_GATEWAY_VERSION, constants::SAMPLE_RATE, constants::DEFAULT_BITRATE, constants::RTP_PROFILE_TYPE, join::Join, songbird::driver, songbird::events, songbird::input, songbird::tracks, config::Config.decode_mode

rustls default

Enables rustls-tls of optional reqwest ^0.11, rustls-tls of optional stream_lib ^0.4.2, rustls-tls-webpki-roots of optional tokio-tungstenite ^0.21, rustls-native-roots of optional twilight-gateway and rustls_backend of optional serenity

serenity:

Backends to pick from:
- Rustls Backends

native

Enables native_tls_backend of optional serenity, native of optional twilight-gateway, native-tls of optional stream_lib ^0.4.2 and optional tokio-tungstenite ^0.21 and native-tls of optional reqwest ^0.11

reqwest:

Enables native-tls specific functionality not available by default.

twilight full-doc?

Enables twilight-gateway and twilight-model

Affects shards::TwilightMap

builtin-queue full-doc?

Behaviour altering features.

receive full-doc?

Enables bytes, demux and rtcp of optional discortp

Affects mixer::MixerConnection.udp_rx, test_impls::Listeners, config::Config.decode_mode, config::Config.decode_channels, config::Config.decode_sample_rate, config::Config.decode_state_timeout, config::Config.playout_buffer_length, config::Config.playout_spike_length

full-doc = builtin-queue, default, receive, twilight

Used for docgen/testing/benchmarking.

internals

Enables byteorder

Affects driver::bench_internals

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.

serenity default

Affects songbird::serenity, shards::SerenitySharder, shards::SerenityShardHandle

simd-json implicit feature

Enables simd-json ^0.13

simd-json:

High performance JSON parser based on a port of simdjson