gcc [flags] files -lmtbl [libraries]
The six main interfaces provided by the mtbl library are:
Iterator objects provide a consistent interface for iterating over the key-value entries returned by other interfaces.
Source objects provide functions for obtaining iterators from an underlying data source. The mtbl_reader and mtbl_merger interfaces provide functions for obtaining references to a source object. The source methods return an mtbl_iter object.
Reader objects provide read-only access to MTBL files.
Writer objects initialize a new MTBL file from a sequence of key-value entries provided by the caller. Keys must be in sorted order based on lexicographical byte value, and keys may not be duplicated.
Merger objects receive multiple sequences of key-value entries from one or more mtbl_source objects and combine them into a single, sorted sequence. The combined, merged output sequence is provided via the mtbl_source interface.
Sorter objects receive a sequence of key-value entries provided by the caller and return them in sorted order. The caller must provide a callback function to merge values in the case of entries with duplicate keys. The sorted output sequence may be retrieved via the mtbl_iter interface or be dumped to an mtbl_writer object.
Fileset objects automatically maintain an mtbl_source built on top of the mtbl_merger and mtbl_reader interfaces. The set of underlying mtbl_reader objects is kept synchronized with a "setfile" on disk listing MTBL files.
Additionally, several utility interfaces are provided:
Calculates the CRC32C checksum of a byte array.
Functions for fixed-width encoding and decoding of 32 and 64 bit integers.
Functions for varint encoding and decoding of 32 and 64 bit integers.