flo Documentation

Welcome to the flo audio codec documentation!

Document Description
Getting Started Installation and first steps
CLI Reference Complete command-line usage
JavaScript API WASM API for browsers
Rust API Native Rust library usage
File Format Technical specification
Metadata Guide Working with audio metadata
Streaming Real-time streaming decoder
Architecture Crate and feature boundaries
No-std and WASM Embedded and browser builds

What is flo?

flo (Fast Layered Object) is a modern audio codec supporting both lossless and lossy compression:

  • Lossless mode: Perfect bit-for-bit reconstruction (~2-3x compression)
  • Lossy mode: Psychoacoustic compression (~10-30x compression)

Key Features

  • Dual-mode: Choose lossless or lossy per-file
  • WebAssembly: Full browser support
  • Rich metadata: ID3v2.4 compatible + unique extensions
  • Streaming: Frame-by-frame decoding for real-time playback
  • CLI tool: Convert MP3, WAV, FLAC, OGG to flo

Components

libflo

The core Rust library. Handles encoding, decoding, and metadata.

  • Available as Rust crate and WASM module
  • Pure Rust (uses rustfft for transforms)

reflo and reflo-cli

reflo is the reusable conversion facade. reflo-cli provides the flo
command-line converter and owns filesystem/audio-container support.

  • Converts common formats to flo
  • Also available as WASM for browser-based conversion

License

Apache-2.0. See LICENSE for details.

“flo” is a trademark of NellowTCS.