Symphonia

Symphonia is a pure Rust audio decoding and media demuxing library aiming to support the most popular formats and codecs.

Current Support

Support for individual audio codecs and media formats is provided by separate crates. By default, Symphonia selects support for FOSS codecs and formats, but others may be included via the features option.

Formats

| Format | Feature Flag | Default | Crate |
|---------|--------------|---------|---------------------------| | OGG | ogg | Yes | symphonia-format-ogg | | Wave | wav | Yes | symphonia-format-wav |

Planned future format support include: MKV, WebM, and ISO/MP4.

Codecs

| Codec | Feature Flag | Default | Crate | |----------|--------------|---------|---------------------------| | FLAC | flac | Yes | symphonia-bundle-flac | | MP3 | mp3 | No | symphonia-bundle-mp3 | | PCM | pcm | Yes | symphonia-codec-pcm |

Planned future decoders include: Opus, Vorbis, AAC, and WavPack.

Metadata

Metadata readers are provided by the symphonia-metadata crate and supports the following tag formats:

Features

Symphonia's features are:

Usage

Check out Symphonia Play, a small music-player showcasing the basic usage of Symphonia.

Authors

The primary author is Philip Deljanov. All additional contributors are credited within the CONTRIBUTORS file.

License

Symphonia is provided under the MPL v2.0 license. Please refer to the LICENSE file for more details.

Contributing

Symphonia is an open-source project and contributions are very welcome! If you would like to make a large contribution, please raise an issue ahead of time to make sure your efforts fit into the project goals, and that no duplication of efforts occurs.

When submitting a pull request, be sure you have included yourself in the CONTRIBUTORS file!