Projects
Maintained Go packages live in the cavaliergopher organisation. Everything else, including the archive, is on my personal account, cavaliercoder.
Go
grab
A download manager package for Go. Monitors progress concurrently, resumes interrupted transfers and validates downloads against checksums.
Used by aptly, VirusTotal’s CLI and Rancher’s elemental-cli, among roughly 475 public packages. I wrote about the design in Downloading large files in Go.
rpm
A Go implementation of the RPM file format — read package metadata, signatures
and payloads without shelling out to rpm.
cpio
CPIO readers and writers for Go, in the style of archive/tar.
xflags
Expressive command line flags for Go, with subcommands and struct binding.
badio
Extensions to Go’s testing/iotest package, for provoking I/O failures that are
otherwise hard to reproduce in tests.
Systems and tools
y10k
Declarative management of Yum package mirrors.
vpc-free
Finds unallocated IP address blocks across AWS VPCs and subnets.
dmidecode-osx
A native port of dmidecode to macOS. See
dmidecode for Apple OS X.
rpi_export
A Prometheus exporter for Raspberry Pi hardware metrics.
Emulation
go-m68k
A Motorola 68000 emulator written in Go, and the CPU core behind an experimental Sega Genesis emulator.
Monitoring
I maintained a number of Zabbix modules and tools over the years, including
libzbxpgsql, g2z and mib2zabbix. They’re listed separately in
Zabbix tools I’ve written.