← all projects

csvlite

2026, everything, c++, cmake

the problem

real-world csv is never clean: quoted commas, escaped quotes, embedded newlines, stray BOMs, ragged rows. and the tools that handle it usually drag along runtimes, libraries, or a network connection.

the approach

a hand-rolled utf-8 parser with streaming and prefix parsing, a versioned column schema with validation rules, atomic saves via temp-and-rename, and four subcommands: a virtualized spreadsheet TUI for editing, plus view, cat, and validate for pipes and scripts.

a chance to try out muse spark 1.3 under heavy supervision.

the outcome

one portable ~200 KiB binary with no third-party code: cmake build, ctest suite, man page, and packaging for homebrew, arch, nix, deb, rpm, and tgz. MIT licensed.

made to work well with rjournal.