Skip to content
/ riffu Public
forked from frabert/riff

Rust crate for doing IO on RIFF files

License

Notifications You must be signed in to change notification settings

hbina/riffu

 
 

Repository files navigation

RIFFU

Crate

The Resource Interchange File Format (RIFF) is a generic file container format for storing data in tagged chunks. It is primarily used to store multimedia such as sound and video, though it may also be used to store any arbitrary data.

Crate for doing IO on RIFF-formatted files

This crate provides utility methods for reading and writing formats such as Microsoft Wave, Audio Video Interleave or Downloadable Sounds.

Examples

Please see the tests to see how to use it.

TODO

I plan to add many, many features to this crate. I hope it will become the de facto way to parse RIFF files in Rust :) -- one can dream.

I am planning on working on:

  1. Complete propagation of errors. A library ought to never panics. Every possible errors should propagate back to the user of this library in RiffError. This also means that RiffError needs to be a LOT more robust.

  2. Ability to dynamically construct RIFF files and write to the machine.

  3. A clean implementation of the lazy version. Because a type T that satisfy Read + Seek must be mutable to do anything. Getting this to work nicely is quite hard because only 1 mutable reference to T can exist at any one time. However, because we are recursively parsing through the file, it complains that it cannot infer the lifetime of T.

  4. Unify the interface of the 2 versions under a trait.

  5. Conversion from each of these representations.

Note

This is a fork of the original library with major changes (practically a rewrite of the entire thing). Provides a cleaner interface, and an option to read the file eagerly.

About

Rust crate for doing IO on RIFF files

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%