Ryan Lahfa 9282cb953c feat(rust/wrappers): init BcachefsHandle
We propose a simple low-level wrapper which can perform various subvolume-related operations
as an example for the API surface.

This will be used in an upcoming commit to migrate the subvolume CLI fully to Rust.

The API design is the following:

- `BcachefsHandle` is meant as a low level handle to carry around whenever you need a filesystem handle
  to send ioctl to.
- it possess type-safe operations

Type safe operations are handled by having type safe wrappers for ioctl commands
*and* their payloads.

We assume that all ioctl payloads only use *one* argument, this can easily be changed if needed.

When the handle goes out of scope, we automatically close it à la C++ RAII.

Signed-off-by: Ryan Lahfa <bcachefs@lahfa.xyz>
2024-01-27 05:15:19 +01:00
2024-01-16 17:17:23 -05:00
2023-12-10 12:16:00 -05:00
2024-01-11 23:55:39 -08:00
2024-01-16 17:17:23 -05:00
2023-12-06 15:41:05 -05:00
2023-01-03 16:58:55 +13:00
2023-11-27 21:04:03 -05:00
2024-01-16 17:17:23 -05:00
2013-07-17 13:13:31 -07:00
2023-11-20 15:13:17 -05:00
2024-01-16 17:17:23 -05:00

bcachefs-tools

Userspace tools and docs for bcachefs

Bcachefs is an advanced new filesystem for Linux, with an emphasis on reliability and robustness and the complete set of features one would expect from a modern filesystem.

This repo primarily consists of the following:

  • bcachefs tool, the reason this repo exists.
  • {mkfs,mount,fsck}.bcachefs utils, which is just wrappers calling the corresponding subcommands in the main tool
  • docs in the form of man-pages and a user manual

Please refer to the main site for getting started An in-depth user manual is (also) found on the official website

Version semantics

The tools relies on an expected disk format structure which is reflected by your current kernel version. Disk format can be upgraded or downgraded automatically by the kernel, if needed.

  • Any patch-level change means no disk format change
  • Any minor-level change means a potential disk format change which is not breaking
  • Any major-level change means breaking changes

Build and install

Refer to INSTALL.md

Bug reports and contributions

Description
Languages
C 95.6%
C++ 2%
Rust 1.4%
Roff 0.4%
Nix 0.2%
Other 0.4%