docs-badge ![build badge] guild-badge ![crates.io version] ![rust 1.60.0+ badge]

Songbird

Songbird is an async, cross-library compatible voice system for Discord, written in Rust. The library offers: * A standalone gateway frontend compatible with [serenity] and [twilight] using the "gateway" and "[serenity/twilight]-[rustls/native]" features. You can even run driverless, to help manage your [lavalink] sessions. * A standalone driver for voice calls, via the "driver" feature. If you can create a ConnectionInfo using any other gateway, or language for your bot, then you can run the songbird voice driver. * And, by default, a fully featured voice system featuring events, queues, RT(C)P packet handling, seeking on compatible streams, shared multithreaded audio stream caches, and direct Opus data passthrough from DCA files.

Intents

Songbird's gateway functionality requires you to specify the GUILD_VOICE_STATES intent.

Dependencies

Songbird needs a few system dependencies before you can use it.

This is a required dependency. Songbird cannot work without it.

This is an optional, but recommended dependency. It allows Songbird to convert from, for instance, .mp4 files to the audio format Discord uses.

This is an optional dependency. It allows Songbird to download an audio source from the Internet, which will be converted to the audio format Discord uses.

Examples

Full examples showing various types of functionality and integrations can be found in [this crate's examples directory].

Contributing

If you want to help out or file an issue, please look over [our contributor guidelines]!

Attribution

Songbird's logo is based upon the copyright-free image ["Black-Capped Chickadee"] by George Gorgas White.