Skip to content

Rewrite it in Rust#1

Merged
Antti merged 9 commits intomasterfrom
riir
Apr 7, 2026
Merged

Rewrite it in Rust#1
Antti merged 9 commits intomasterfrom
riir

Conversation

@Antti
Copy link
Copy Markdown
Member

@Antti Antti commented Apr 3, 2026

Summary

This PR rewrites audiowaveform in Rust and removes the legacy C++/CMake implementation from this repository.

The repo is now centered on a Rust workspace with:

  • crates/audiowaveform: reusable library crate
  • crates/audiowaveform-cli: thin CLI wrapper

It also updates the repository metadata to reflect that this is the canonical FetLife-hosted Rust rewrite of the original BBC project.

Changes

  • Added a first-class Rust library for:

    • audio decoding with Symphonia
    • raw PCM parsing
    • waveform generation and resampling
    • waveform .dat / .json / .txt serialization
    • PNG rendering
    • PCM16 WAV transcoding
  • Added a Rust CLI that keeps the familiar audiowaveform command shape while using typed clap enums and styled help output.

  • Expanded the Rust test suite to cover:

    • decode/generate flows
    • waveform I/O and validation
    • PNG rendering
    • WAV transcoding
    • CLI smoke/regression cases
  • Consolidated fixtures into a single fixtures/ directory.

  • Removed legacy project infrastructure:

    • C++ source and tests
    • CMake build files
    • distro packaging files
    • old CMake-based GitHub Actions workflow
  • Updated docs and metadata:

    • README now points to https://github.com/fetlife/audiowaveform
    • original BBC project is linked and credited
    • changelog now clarifies that older entries are inherited history
    • CI and CodeQL now target the Rust workspace

Notes

  • Opus remains intentionally unsupported in the Rust implementation for now.
  • Some Rust fixture outputs are intentionally Rust-owned goldens where decoder/renderer behavior does not byte-match the legacy stack.

Validation

cargo fmt --all
cargo test --workspace
cargo check --workspace --examples
cargo check --workspace --quiet

@Antti Antti merged commit dd66279 into master Apr 7, 2026
19 checks passed
@Antti Antti deleted the riir branch April 7, 2026 09:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant