Native Go bindings for btrfs.
These are in the early stages. We will try to maintain stability, but please vendor if you are relying on these directly.
Headers from kernel 4.12 or newer.
The package name is linux-libc-dev
on Debian/Ubuntu, kernel-headers
on Fedora and RHEL-like distros.
The headers are only required on compilation time, not on run time.
libbtrfs headers.
The package name is libbtrfs-dev
on Debian/Ubuntu, btrfs-progs-devel
on Fedora and CentOS 7.
The package is not available for Rocky Linux and AlmaLinux.
This package may not cover all the use cases for btrfs. If something you need is missing, please don't hesitate to submit a PR.
Note that due to struct alignment issues, this isn't yet fully native. Preferably, this could be resolved, so contributions in this direction are greatly appreciated.
If you submit a contribution that adds a new file, please add the license
header. You can do so manually or use the ltag
tool:
$ go get github.com/kunalkushwaha/ltag
$ ltag -t ./license-templates
The above will add the appropriate licenses to Go files. New templates will need to be added if other kinds of files are added. Please consult the documentation at https://github.com/kunalkushwaha/ltag
btrfs is a containerd sub-project, licensed under the Apache 2.0 license. As a containerd sub-project, you will find the:
information in our containerd/project
repository.