Ruby extension for GNU dbm (gdbm) – a simple database engine for storing key-value pairs on disk.
GNU dbm is a library for simple databases. A database is a file that stores key-value pairs. Gdbm allows the user to store, retrieve, and delete data by key. It furthermore allows a non-sorted traversal of all key-value pairs. A gdbm database thus provides the same functionality as a hash. As with objects of the Hash class, elements can be accessed with . Furthermore, GDBM mixes in the Enumerable module, thus providing convenient methods such as #find, #collect, #map, etc.
A process is allowed to open several different databases at the same time. A process can open a database as a “reader” or a “writer”. Whereas a reader has only read-access to the database, a writer has read- and write-access. A database can be accessed either by any number of readers or by exactly one writer at the same time.
Opening/creating a database, and filling it with some entries:
Reading out a database:
produces banana: 8 ananas: 3 cranberry: 4909
READER = flag for #new and #open
WRITER = flag for #new and #open
WRCREAT = flag for #new and #open
NEWDB = flag for #new and #open
FAST = INT2FIX(GDBM_FAST)
SYNC = INT2FIX(GDBM_SYNC)
NOLOCK = INT2FIX(GDBM_NOLOCK)
VERSION = rb_str_new2(gdbm_version)