Cargo Features

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

Core features

gateway default

Enables async-trait, dashmap, flume, 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-util, typenum, url, and uuid, aead, aes-gcm, async-trait, audiopus, byteorder, bytes, chacha20poly1305, crypto-common, discortp, flume, nohash-hasher, parking_lot, rand, reqwest, ringbuf, rubato, rusty_pool, serde-aux, serenity-voice-model, socket2, stream_lib, 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, rustls-tls of optional stream_lib, rustls-tls-webpki-roots of optional tokio-tungstenite, ring and rustls-native-roots of optional tokio-websockets, 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-tls of optional stream_lib, optional tokio-tungstenite, optional tokio-websockets, and optional twilight-gateway and native-tls of optional reqwest

reqwest:

Enables native-tls specific functionality not available by default.

tungstenite default full-doc?

Enables tokio-tungstenite

tws

Enables tokio-websockets

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, tungstenite, 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