macOS
brew install xanlocal Homebrew formula metadata
sudo port install xanMacPorts ports tree · textproc/xan/Portfile · source: api.github.com
brew
CSV CLI magician written in Rust. Version 0.59.0 via Homebrew; verified 2026-06-17.
install
brew install xanlocal Homebrew formula metadata
sudo port install xanMacPorts ports tree · textproc/xan/Portfile · source: api.github.com
nix profile install nixpkgs#xannixpkgs package indexes · pkgs/by-name/xa/xan/package.nix · source: api.github.com
sudo pacman -S xanArch Linux sync databases · xan · source: geo.mirror.pkgbuild.com
scoop install extras/xanScoop official bucket manifest trees · bucket/xan.json · source: api.github.com
winget install --id medialab.xan -eWindows Package Manager source index · medialab.xan · source: cdn.winget.microsoft.com
overview
CSV CLI magician written in Rust
history
xan is a Rust command-line toolkit for processing CSV and CSV-adjacent tabular data directly from the shell. Its README calls it the CSV magician and emphasizes speed, low memory use, large-file handling, SIMD CSV parsing, and multithreaded operations.
Compared with older single-purpose CSV tools, xan aims to be a richer terminal data workbench: previewing, filtering, slicing, aggregating, sorting, joining, plotting, scraping, converting formats, and using a CSV-oriented expression language.
The project repository was created in 2018, but the public crate history for xan begins with version 0.1.0 on February 7, 2024. The README says xan began as a fork of BurntSushi's xsv and has since been nearly entirely rewritten for Sciences Po medialab use cases rooted in web data collection and social-science analysis.
The tool's development identity is tied to practical research data work: CSV remains a common interchange format among spreadsheets, statistics tools, scripting languages, web archives, and data pipelines, and xan extends beyond plain CSV into formats such as CDX, VCF, GTF, SAM, BED, JSON, Excel, and NumPy arrays.
xan is newer than classic CSV tools, but it has become visible in terminal-data circles because it combines xsv-like speed with a broader command set and interactive exploration features. By July 2026 the GitHub repository had roughly four thousand stars, and crates.io listed tens of thousands of downloads.
Its adoption niche is strongest among users who want shell-native data munging without starting Python, R, pandas, a notebook, or a database engine. That includes journalists, researchers, civic-tech users, data engineers doing quick inspections, and developers manipulating large delimited files in pipelines.
Typical xan sessions chain commands to inspect headers, preview rows, filter with expressions, compute frequencies, aggregate columns, join files, sort large CSVs, and render quick terminal visualizations. The README highlights its own expression language for cases too complex for the simplest commands but faster and more focused than embedding a general dynamic language.
The package is useful as a one-binary data knife: users can keep transformations in shell history, run them repeatedly in scripts, and work with gigabyte-scale CSVs using streaming, SIMD parsing, and parallelism where commands allow it.
xan sits in the lineage of modern Rust CLI rewrites of Unix data tools: fast, single-purpose at the binary level, but broad enough to replace many tiny CSV scripts. Its xsv ancestry matters, but the medialab rewrite and CSV-adjacent commands give it a distinct research-data personality.
security posture
narrow executable package without higher-risk signals.
green risk · low confidence · appliance
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
xan | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://github.com/medialab/xan
install metadata
| Package key | brew:xan |
|---|---|
| Version | 0.59.0 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/xan |
| Homepage | https://github.com/medialab/xan |
| Repository | https://github.com/medialab/xan |
| Upstream docs | https://github.com/medialab/xan#readme |
| License | MIT OR Unlicense |
| Source archive | https://github.com/medialab/xan/archive/refs/tags/0.59.0.tar.gz |
| Last updated | 2026-06-17T14:42:54Z |
| Pulse | updated |
| Build dependencies | rust |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | xan |
| Version Scheme | 0 |
| Revision | 0 |
| Head Version | HEAD |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
xan
nix profile install nixpkgs#xanxan 0.58.0-1
The CSV magician
https://github.com/medialab/xan
sudo pacman -S xanxan
sudo port install xanextras/xan
scoop install extras/xanmedialab.xan
winget install --id medialab.xan -esource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.