Go wrappers for ZFS commands
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore Initial version Aug 15, 2014
.travis.yml cache zfs artifacts Mar 21, 2018
CONTRIBUTING.md Update CONTRIBUTING.md Dec 9, 2014
LICENSE
README.md correct spelling mistake Sep 1, 2017
Vagrantfile go 1.3.3 Nov 26, 2014
error.go
error_test.go
utils.go remove command name from joined args Mar 12, 2018
utils_notsolaris.go
utils_solaris.go
zfs.go Add 'referenced' to zfs properties Dec 12, 2016
zfs_test.go test: better unicode path handling in TestDiff Nov 22, 2017
zpool.go

README.md

Go Wrapper for ZFS

Simple wrappers for ZFS command line tools.

GoDoc

Requirements

You need a working ZFS setup. To use on Ubuntu 14.04, setup ZFS:

sudo apt-get install python-software-properties
sudo apt-add-repository ppa:zfs-native/stable
sudo apt-get update
sudo apt-get install ubuntu-zfs libzfs-dev

Developed using Go 1.3, but currently there isn't anything 1.3 specific. Don't use Ubuntu packages for Go, use http://golang.org/doc/install

Generally you need root privileges to use anything zfs related.

Status

This has been only been tested on Ubuntu 14.04

In the future, we hope to work directly with libzfs.

Hacking

The tests have decent examples for most functions.

//assuming a zpool named test
//error handling omitted


f, err := zfs.CreateFilesystem("test/snapshot-test", nil)
ok(t, err)

s, err := f.Snapshot("test", nil)
ok(t, err)

// snapshot is named "test/snapshot-test@test"

c, err := s.Clone("test/clone-test", nil)

err := c.Destroy()
err := s.Destroy()
err := f.Destroy()

Contributing

See the contributing guidelines