# Install xan with Homebrew, MacPorts, Nix, pacman, scoop, winget

CSV CLI magician written in Rust. Version 0.59.0 via Homebrew; verified 2026-06-17.

## Install

```sh
sudo av install brew:xan
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install xan
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install xan
```

  Evidence: MacPorts ports tree: textproc/xan/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#xan
```

  Evidence: nixpkgs package indexes: pkgs/by-name/xa/xan/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S xan
```

  Evidence: Arch Linux sync databases: xan from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

### Windows

- Scoop (92%):

```sh
scoop install extras/xan
```

  Evidence: Scoop official bucket manifest trees: bucket/xan.json from https://api.github.com/repos/ScoopInstaller/Extras/git/trees/master?recursive=1

- winget (92%):

```sh
winget install --id medialab.xan -e
```

  Evidence: Windows Package Manager source index: medialab.xan from https://cdn.winget.microsoft.com/cache/source.msix

## Package facts

- **Package key:** brew:xan
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/xan>
- **Version:** 0.59.0
- **Source summary:** CSV CLI magician written in Rust
- **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
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- xan (cli)
- xan (alias)

## Build dependencies

- rust

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 0.59.0
- Package-manager updated: 2026-06-17
- Local data: ok
- Upstream repository: https://github.com/medialab/xan
- Upstream latest detected: 0.59.0 (current)
## Project history and usage

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.

### Project history

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.

### Adoption history

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.

### How it is used

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.

### Why package nerds care

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.

### Timeline

- 2018: medialab/xan repository is created.
- 2024-02-07: xan 0.1.0 is published on crates.io.
- 2025: Release cadence accelerates with frequent 0.x releases and expanded command coverage.
- 2026-06-17: crates.io lists xan 0.59.0 as the latest version at the time researched.

### Related projects

- xsv is the Rust CSV toolkit from which xan originally forked.
- csvkit, Miller, DuckDB, pandas, and command-line SQL tools overlap with parts of xan's CSV manipulation niche.
- simd-csv is part of the parser story highlighted by xan's README and project blog.

### Sources

- <https://crates.io/api/v1/crates/xan>
- <https://github.com/medialab/xan>
- <https://github.com/medialab/xan/blob/master/docs/blog/csv_base_jumping.md>
- <https://github.com/medialab/xan/blob/master/docs/cookbook/dataviz.md>
- <https://github.com/medialab/xan/releases>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **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:** head, stable

## Other Package-Manager Records

- Nix - xan: normalized package name match | nixpkgs package indexes: pkgs/by-name/xa/xan/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- pacman - xan - 0.58.0-1: normalized package name match | Arch Linux sync databases: xan from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | The CSV magician | https://github.com/medialab/xan
- MacPorts - xan: normalized package name match | MacPorts ports tree: textproc/xan/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Scoop - extras/xan: normalized package name match | Scoop official bucket manifest trees: bucket/xan.json from https://api.github.com/repos/ScoopInstaller/Extras/git/trees/master?recursive=1
- winget - medialab.xan: normalized package name match | Windows Package Manager source index: medialab.xan from https://cdn.winget.microsoft.com/cache/source.msix


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [rust](https://www.automicvault.com/pkg/brew/rust/) - Build dependency declared by Homebrew.
- [qsv](https://www.automicvault.com/pkg/brew/qsv/) - Shares av.db curated category or tags: cli, csv, data, rust.
- [csvkit](https://www.automicvault.com/pkg/brew/csvkit/) - Shares av.db curated category or tags: cli, csv, data.
- [csvlens](https://www.automicvault.com/pkg/brew/csvlens/) - Shares av.db curated category or tags: cli, csv, data.
- [csvq](https://www.automicvault.com/pkg/brew/csvq/) - Shares av.db curated category or tags: cli, csv, data.
- [csvtk](https://www.automicvault.com/pkg/brew/csvtk/) - Shares av.db curated category or tags: cli, csv, data.
- [zsv](https://www.automicvault.com/pkg/brew/zsv/) - Shares av.db curated category or tags: cli, csv, data.
- [miller](https://www.automicvault.com/pkg/brew/miller/) - Shares av.db curated category or tags: cli, csv, data, data-processing.
- [apache-spark](https://www.automicvault.com/pkg/brew/apache-spark/) - Shares av.db curated category or tags: cli, data, data-processing.

## Combined YAML source

View the package source record on GitHub. [combined/xan.yml](https://github.com/automic-vault/db/blob/main/combined/xan.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
