5 releases

0.2.0 Mar 9, 2024
0.1.5 Jan 18, 2024
0.1.3 Nov 11, 2023
0.1.2 Oct 30, 2023
0.1.1 Aug 26, 2023

#276 in Unix APIs

GPL-2.0 license

77KB
2K SLoC

rublk

[License: GPL v2] (https://github.com/ming1/rublk/blob/master/COPYING)

Rust ublk generic target implementation, which depends on libublk^1, which talks with linux ublk driver^2 for building and exposing standard linux block device, meantime all target IO logic is moved to userspace.

Linux kernel 6.0 starts to support ublk covered by config option of CONFIG_BLK_DEV_UBLK.

Documentations

ublk doc links

ublk introduction

Quick Start

cargo install rublk

modprobe ublk_drv

rublk help

$ rublk help
Usage: rublk <COMMAND>

Commands:
  add       Adds ublk target
  del       Deletes ublk target
  list      Lists ublk targets
  recover   Recover ublk targets
  features  Get supported features from ublk driver, supported since v6.5
  help      Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

rublk add help

$ rublk add help
Adds ublk target

Usage: rublk add <COMMAND>

Commands:
  loop   Add loop target
  null   Add null target
  zoned  Add zoned target, supported since v6.6
  qcow2  Add qcow2 target
  help   Print this message or the help of the given subcommand(s)

Options:
  -h, --help  Print help

License

This project is licensed under GPL-2.0.

Contributing

Any kinds of contributions are welcome!

Dependencies

~18–53MB
~860K SLoC