Data and databases · Edition No. 36 · 30 Sep 2026

medialab/xan

A command-line tool for processing, exploring and drawing CSV data in the terminal.

← Data and databasesRead the whole edition →

4531 stars · Unlicense OR MIT — read from /blob/master/UNLICENSE and /blob/master/LICENSE-MIT, both plain and unmodified; nothing at LICENSE, so automatic licence checkers find nothing · 0.61.0 of 2026-09-11, the yearless GitHub date settled to the minute by crates.io's API · Track this in Scout

A command-line tool for processing, exploring and drawing CSV data in the terminal.

▶Repo detailsthe review · specs · pros & cons · install

What it is

A program written in Rust, at 4,531 stars, maintained by a social-science research lab in Paris. It began as a fork of BurntSushi/xsv, the original fast CSV toolkit, and its README says it has been nearly entirely rewritten since. Its newest release, 0.61.0, is dated 11 September 2026, and code landed on 29 September 2026.

What it is good for. Anyone who receives a table too large for a spreadsheet and needs to answer one question about it: how many rows, which values appear, what the totals are per group. It is also useful as the first step before a table goes into a database, because it can describe and check a file before anything loads it.

Stars4531
LicenceUnlicense OR MIT — read from /blob/master/UNLICENSE and /blob/master/LICENSE-MIT, both plain and unmodified; nothing at LICENSE, so automatic licence checkers find nothing
Latest0.61.0 of 2026-09-11, the yearless GitHub date settled to the minute by crates.io's API
Good
  • The lineage is credited honestly, which is rarer than it should be. The README says it began as a fork of xsv, and the licence file still names xsv's original author beside the current maintainer.
  • Both licences are as permissive as they come: the project is offered as public domain or MIT, at your choice.
  • Real speed. It parses using processor instructions designed for this kind of work and spreads the job across processor cores, so a large file is a wait of seconds rather than minutes.
Watch for
  • It has no version 1.0. At 0.61.0, command names and options can still move between versions, so a script written today is not guaranteed to run next year.
  • There are 120 open issues against a single open pull request, from a small academic lab. That is a real risk if the lab's attention moves elsewhere.
  • Operations such as sorting, joining and removing duplicates have to hold data in memory. "Handles gigabyte files" is not the same as "never runs out of memory", and no figures are published either way.
  • There is no file at the usual LICENSE path: the two licences sit in UNLICENSE and LICENSE-MIT. Automatic licence checkers report nothing at all, which causes arguments in companies that run them.
Similar repositories
  • dathere/qsv

    The other successor named in xsv's own farewell note, doing the same job with a much larger command set, but its README does not credit xsv or its author where xan credits both openly.

    Track this in Scout
  • johnkerl/miller

    The same work on CSV, tab-separated files and line-by-line JSON with genuine streaming for files larger than memory, but written in Go and with a query language of its own to learn.

    Track this in Scout
  • BurntSushi/xsv

    The original both successors descend from, with the same commands and the same job, archived by its owner on 24 April 2025 and now pointing readers at the two projects that replaced it.

    Track this in Scout
Install
brew install xan
sudo pacman -S xan
scoop install xan
Screenshots
medialab/xan: GitHub preview cardmedialab/xan: Screenshot 1medialab/xan: Screenshot 2medialab/xan: Screenshot 3medialab/xan: Screenshot 4

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.