If I might engage in a little shameless self-promotion, perhaps my freshly-released FLAC Codec crate might be worth a look for providing comprehensive support for the FLAC file format all in one place.
It features metadata management if one just needs to query file stream parameters, update text tags or embed fresh cover art.
It features a decoder which handles the entire test file suite (old standby Claxon panics on about half of these, and hasn't been maintained in so long that it's still chock full of try!
macros).
It features an encoder modeled closely on the reference implementation's which achieves similar compression ratios when using the same encoding parameters - with optional multithreading for better performance because why not.
It's got easy Read
and Write
-like APIs for decoding and encoding signed integer samples (or it you just need samples as bytes in some endianness, there's variations that literally just implement std::io::Read
and std::io::Write
).
If want to analyze the contents of your files (like the reference implementation's --analyze
option), it can deserialize FLAC files directly into Rust types - or serialize them back again if you like.
And it's all 100% safe and performant, for all your FLAC finagling needs. Feel free to give it a try.