rinimp3

Crates.iorinimp3
lib.rsrinimp3
version0.1.0
sourcesrc
created_at2018-10-08 20:42:19.401098
updated_at2018-10-08 20:42:19.401098
descriptionAn attempt to make a pure-Rust MP3 decoder, based on `minimp3`.
homepage
repositoryhttps://github.com/icefoxen/rinimp3
max_upload_size
id88768
size175,132
(icefoxen)

documentation

https://docs.rs/rinimp3/

README

rinimp3

An attempt to make a port of lieff's minimp3 to Rust. The goal is basically to make the minimp3-rs crate, bindings to the C library, unnecessary.

There is a write-up of the translation process here.

First step is to just duplicate it as closely as possible, including passing its tests and fuzzing. Next step would be to smooth its API out and make it more Rusty; https://github.com/germangb/minimp3-rs might be useful for inspiration.

Current status: about 90% translated, but there's still some panics lurking in the test cases. I need to find a nice few days and just finish it off.

Differences from minimp3:

  • i16 output only
  • No SIMD
  • No conditional compilation -- basically should operate as if the following flags are defined:
  • #define MINIMP3_NO_SIMD
  • #define MINIMP3_NONSTANDARD_BUT_LOGICAL???
Commit count: 43

cargo fmt