# Install xnvme with Homebrew, apk, dnf

Cross-platform libraries and tools for efficient I/O and low-level control. Version 0.7.5 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:xnvme
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install xnvme
```

  Evidence: local Homebrew formula metadata

### Linux

- apk (92%):

```sh
sudo apk add py3-xnvme
```

  Evidence: Alpine Linux edge package indexes: py3-xnvme from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- dnf (92%):

```sh
sudo dnf install xnvme
```

  Evidence: Fedora Rawhide package metadata: xnvme from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

## Package facts

- **Package key:** brew:xnvme
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/xnvme>
- **Version:** 0.7.5
- **Source summary:** Cross-platform libraries and tools for efficient I/O and low-level control
- **Homepage:** <https://xnvme.io/>
- **Repository:** <https://github.com/xnvme/xnvme>
- **Upstream docs:** <https://xnvme.io/>
- **License:** BSD-3-Clause
- **Source archive:** <https://github.com/xnvme/xnvme/releases/download/v0.7.5/xnvme-fat-0.7.5.tar.gz>
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- kvs (cli)
- lblk (cli)
- xdd (cli)
- xnvme (cli)
- xnvme-driver (cli)
- xnvme_file (cli)
- zoned (cli)
- kvs (alias)
- lblk (alias)
- xdd (alias)
- xnvme (alias)
- xnvme-driver (alias)
- xnvme_file (alias)
- zoned (alias)

## Build dependencies

- meson
- ninja
- pkgconf

## Install behavior

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

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 0.7.5
- Local data: ok
- Upstream repository: https://github.com/xnvme/xnvme
- info: No package-manager update timestamp was available.
- info: No cached GitHub release or tag data was available.
## Project history and usage

xNVMe is a low-level storage toolkit and C library for programming NVMe devices from user space across multiple platforms and I/O backends. Its central promise is I/O-interface independence: code against libxnvme and retarget the actual path through Linux kernel interfaces, io_uring, SPDK, FreeBSD, Windows-style paths, or other backends.

### Project history

The GitHub repository was created in April 2020. The documentation presents libxnvme as the foundation: it provides memory-management helpers, synchronous and asynchronous NVMe command submission, convenience functions, command-line tools, and backend retargeting over drivers such as Linux IOCTL, libaio, io_uring, SPDK, FreeBSD IOCTL, and others.

The project's research framing was published in the 2022 paper 'I/O interface independence with xNVMe', which argues that modern storage programmers face too many idiosyncratic high-performance I/O interfaces and presents xNVMe as a thin abstraction over those choices.

### Adoption history

xNVMe adoption is strongest in storage systems, benchmarking, and research workflows rather than general desktop use. The official docs include tools such as xnvme, lblk, zoned, xdd, xnvmeperf, and a fio I/O engine, which makes the package useful both as a library and as a command-line toolbox for NVMe experiments.

The integration story is important. SPDK documents an xNVMe bdev module that can issue I/O through mechanisms such as libaio, io_uring, asynchronous IOCTL with io_uring passthrough, POSIX aio, and emulated aio, while fio documents an xnvme engine for accessing NVMe devices through xNVMe's C API and backend choices.

### How it is used

Developers use libxnvme when they need to allocate suitable buffers, submit NVMe commands, choose synchronous or asynchronous completion models, and switch between backend implementations without rewriting the application for every platform or driver stack.

Operators and researchers use the packaged tools for direct device experiments: querying devices, issuing commands, working with logical blocks and zoned namespaces, exercising xdd-style data movement, and running fio jobs through the xnvme engine.

### Why package nerds care

xNVMe is significant because it packages a hard systems-programming problem as installable infrastructure. It does not hide NVMe; it standardizes the messy edge between applications, kernel APIs, userspace drivers, DMA-safe buffers, and benchmark tools.

For package nerds, it is also a marker of modern storage packaging: a formula can ship a library plus multiple expert CLIs, and those binaries matter to developers working on databases, file systems, benchmarks, zoned storage, and SPDK/io_uring experiments.

### Timeline

- 2020-04-02: The xnvme/xnvme GitHub repository is created.
- 2022: 'I/O interface independence with xNVMe' is published, documenting the project's design and performance motivation.
- 2022-2024: GitHub releases show the public 0.x line maturing through storage tools, documentation, and backend work.
- 2020s: xNVMe appears in SPDK and fio documentation as a backend/engine for NVMe I/O across multiple mechanisms.

### Related projects

- SPDK is a key adjacent userspace storage stack; its bdev_xnvme module uses xNVMe as an I/O mechanism abstraction.
- fio includes an xnvme I/O engine for benchmarking NVMe devices through xNVMe.
- io_uring, libaio, NVMe IOCTLs, and SPDK drivers are backend paths xNVMe helps applications target.
- nvme-cli is an adjacent command-line NVMe administration tool, while xNVMe focuses on programmable I/O and backend independence.

### Sources

- <https://api.github.com/repos/xnvme/xnvme>
- <https://dl.acm.org/doi/10.1145/3534056.3534936>
- <https://fio.readthedocs.io/en/latest/fio_doc.html>
- <https://github.com/xnvme/xnvme>
- <https://xnvme.io/>
- <https://xnvme.io/tools/fio/index.html>
- <https://xnvme.io/tutorial/bdev_xnvme/index.html>


## 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:** xnvme
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- apk - py3-xnvme - 0.7.5-r1: normalized package name match | Alpine Linux edge package indexes: py3-xnvme from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | cross-platform libraries and tools for NVMe devices | https://xnvme.io
- apk - py3-xnvme-pyc - 0.7.5-r1: normalized package name match | Alpine Linux edge package indexes: py3-xnvme-pyc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Precompiled Python bytecode for py3-xnvme | https://xnvme.io
- apk - xnvme - 0.7.5-r1: normalized package name match | Alpine Linux edge package indexes: xnvme from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | cross-platform libraries and tools for NVMe devices | https://xnvme.io
- apk - xnvme-dev - 0.7.5-r1: normalized package name match | Alpine Linux edge package indexes: xnvme-dev from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | cross-platform libraries and tools for NVMe devices (development files) | https://xnvme.io
- apk - xnvme-doc - 0.7.5-r1: normalized package name match | Alpine Linux edge package indexes: xnvme-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | cross-platform libraries and tools for NVMe devices (documentation) | https://xnvme.io
- dnf - xnvme - 0.7.5-6.fc44: normalized package name match | Fedora Rawhide package metadata: xnvme from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Unified API and tools for traditional and emerging I/O interfaces | https://github.com/xnvme/xnvme
- dnf - xnvme-devel - 0.7.5-6.fc44: normalized package name match | Fedora Rawhide package metadata: xnvme-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Development library and header files for xnvme | https://github.com/xnvme/xnvme
- dnf - xnvme-static - 0.7.5-6.fc44: normalized package name match | Fedora Rawhide package metadata: xnvme-static from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Static library for xnvme | https://github.com/xnvme/xnvme
- dnf - xnvme-tools - 0.7.5-6.fc44: normalized package name match | Fedora Rawhide package metadata: xnvme-tools from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Command-line tools for storage I/O and NVMe-native development | https://github.com/xnvme/xnvme


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [Homebrew utility packages](https://www.automicvault.com/pkg/brew-utility-packages/) - Matched Homebrew package provider.
- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Matched curated package taxonomy and local package facts.
- [meson](https://www.automicvault.com/pkg/brew/meson/) - Build dependency declared by Homebrew.
- [ninja](https://www.automicvault.com/pkg/brew/ninja/) - Build dependency declared by Homebrew.
- [pkgconf](https://www.automicvault.com/pkg/brew/pkgconf/) - Build dependency declared by Homebrew.
- [fio](https://www.automicvault.com/pkg/brew/fio/) - Shares av.db curated category or tags: cli, io, storage, system.
- [isa-l](https://www.automicvault.com/pkg/brew/isa-l/) - Shares av.db curated category or tags: cli, library, storage, system.
- [smartmontools](https://www.automicvault.com/pkg/brew/smartmontools/) - Shares av.db curated category or tags: cli, nvme, storage, system.
- [device-mapper](https://www.automicvault.com/pkg/brew/device-mapper/) - Shares av.db curated category or tags: cli, storage, system.
- [di](https://www.automicvault.com/pkg/brew/di/) - Shares av.db curated category or tags: cli, storage, system.
- [disktype](https://www.automicvault.com/pkg/brew/disktype/) - Shares av.db curated category or tags: cli, storage, system.
- [gdu](https://www.automicvault.com/pkg/brew/gdu/) - Shares av.db curated category or tags: cli, storage, system.
- [gptfdisk](https://www.automicvault.com/pkg/brew/gptfdisk/) - Shares av.db curated category or tags: cli, storage, system.

## Combined YAML source

View the package source record on GitHub. [combined/xnvme.yml](https://github.com/automic-vault/db/blob/main/combined/xnvme.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
