After several months of leisurely development (I’ve read through everything on the Internet several times, and notified everyone who was wrong), I have finally gotten obnam, my backup application, into a state where it successfully backs up my laptop’s hard disk to a USB disk. I therefore declare it to be perfe… no, wait, I don’t.

It’s slow. It’s probably buggy in ways that will make you want to abandon computers forever. It’s also slow. And buggy. Did I mention it is slow, making backups at only a few megabytes per second?

Disclaimers aside, I am happy to have gotten obnam to this stage. It’s not nearly ready, but it’s getting along nicely.

If you’ve been curious about obnam ever since I first mentioned it in 2007, now might be a good time to try it out. I would be very interested in hearing any feedback.

Obnam is implemented using copy-on-write B-trees, and I’ve also released my B-tree implementation.

See the NEWS file in each source tree for information for what’s changed since the previous release.


I have made Debian packages of obnam, btree, and some of my other stuff that they need, for all, amd64, and i386 architectures. The repository is at, so add this to your sources.list if you want to use that:

deb squeeze main

Note, however, that I do not guarantee that this repository will be in any useful state at any given time. I use it, and rely on it, and will fix things when they bother me, but that’s all the guarantee I give. (Do you get the impression I’ve read too many contracts?)

Once obnam is ready, and Debian squeeze is released, I’ll upload it to Debian, and then you’ll get it for any architecture Debian runs one. If anyone wants to help me maintain the packages for Debian, please e-mail me.

If, on the other hand, you’d like to help make obnam faster, or better, the bug tracker has some pointers. Right now speed is perhaps the biggest problem. The B-tree library needs optimizing, as does obnam itself. And the LRU cache I use.

The worst missing feature is encryption support. I do my backups to a local hard disk, which is full-disk encrypted, which is why I haven’t cared about implementing encryption yet. Also, I need to design a good way to manage keys, etc. Help with that would be quite welcome.