User space I/O library for Open-Channel SSDs

liblightnvm provides the means to interact with and obtain information about Open-Channel SSDs from user space.

The core of the library provides an interface for performing vectorized I/O using physical addressing. Command-construction is encapsulated, including mapping a general physical addressing format to device specific. Thereby allowing the user to focus on performing read/write on the vector space. The interface is useful for experimenting with the vectorized I/O as provided by Open-Channel SSDs. However, the library also support pealing of these abstractions and let the user construct and submit “raw” commands.

For application integration, the “virtual block” interface provides a libc-like write/read/pread interface, encapsulating concerns of optimizing command construction for utilization of parallel units on an Open-Channel SSD. A virtual block can be created to span all parallel units or a subset thereof.

liblightnvm provides access to the user via a public C API, and a command-line interface (CLI). The CLI is a thin wrapper around what the C API exposes and is intended to provide easy access to what liblightnvm has to offer.

Here you can jump right into the Quick Start or take detailed look at the Prerequisites for using liblightnvm. Background information is available, introducing common pitfalls when working with flash memories.

With the basics in place you can explore the C API and the Command-Line Interface.


Indices and tables