Skip to content

Latest commit

 

History

History
58 lines (39 loc) · 2.38 KB

README.md

File metadata and controls

58 lines (39 loc) · 2.38 KB

ndbm

Github license Travis CI build status GoDoc

State of the art structured storage for 1986.

ndbm is a Go wrapper around the POSIX NDBM database interface. NDBM is built into Mac OS X and FreeBSD, and is available as a compatibility mode of the GDBM library on Linux.

API documentation is available on GoDoc.

Why?

I wrote the first version of this library on a Mac on a cruise ship, where I needed a persistent key-value store, but had no Internet connection, just OS X system libraries, man pages, and Go documentation.

Linux notes

Most Linux distros don't package an NDBM implementation. Debian/Ubuntu users should install libgdbm3 and libgdbm-dev before building.

To make this package go gettable, I've targeted the quirky GDBM 1.8, which is the version available on Ubuntu 12-15 and Debian 7-8, instead of attempting build-time library detection, which would allow using the current and more NDBM-compatible GDBM 1.11.

If you are using a recent GDBM that provides ndbm.h, you will probably need to delete gdbm_compat.h and gdbm_compat_linux.c and the #ifdef __linux checks.

Background

POSIX standard for NDBM:

Mac OS X NDBM:

FreeBSD NDBM:

GDBM: