mtbl (1.3.0)

 * Fix mtbl_reload_now() on filesets with open iterators.
 * Add support for absolute pathnames in filesets
 * Make merge function an optional parameter for mergers and filesets to
   enable unmerged results.
 * Add dupsort function to sort unmerged results based on data.
 * Add filename filter option to filesets. This provides functionality similar
   to mtbl_fileset_partition() but resilient against fileset reloads.
 * Add mtbl_fileset_dup() to open an existing fileset with different options.

 -- Farsight Security, Inc. <software@farsightsecurity.com>  Fri, 29 Mar 2019 12:13:17 -0500

mtbl (1.2.1)

 * Fix libtool version number.

 -- Farsight Security, Inc. <software@farsightsecurity.com>  Fri May 25 17:49:08 2018 -0500

mtbl (1.2.0)

 * Prevent fileset reloading when the fileset has iterators open.
 * Add and document facility to disable reloading of filesets.
 * Defer initial load of fileset until the first operation on a fileset
   source.
 * Handle 32bit size_t overflows, failing with an assertion upon opening
   an mtbl_reader with an oversized data block.
 * Fix for systems with 32-bit size_t.
 * Add several unit tests for various libmtbl functions.

 -- Farsight Security, Inc. <software@farsightsecurity.com>  Fri, 25 May 2018 11:55:07 -0400

mtbl (1.1.1)

 * Fix iterator leak in mtbl_merger code.

 -- Chris Mikkelson <cmikk@fsi.io>  Wed, 2 Aug 2017 12:44:53 -0500

mtbl (1.1.0)

  * Fix default zlib compression level.
  * Add callback data (clos) parameter to mtbl_fileset_partition
    function and its callback. Early users of mtbl_fileset_partition
    will need to rewrite accordingly.
  * Use 64-bit offsets in blocks with more than 4G of data.
  * Fix undefined behavior when seeking past end of mtbl file.

mtbl (1.0.0)

 * Backwards-incompatible file format change to enable block sizes >4G.
 * Add support for zstd compression. This adds a new library dependency
   on libzstd.
 * Add mtbl_iter_seek function.
 * Add mtbl_fileset_partition function.
 * Breaks ABI for version 0.x.x.

mtbl (0.8.1)

 [ Robert Edmonds ]
 * Add portability for clock time.

 * Simplify and improve portability related to byte order primitives.

 [ Henry Stern ]
 * Fix assertion failure. If there is a broken mtbl file in the fileset
   then a NULL reader will be returned. This change checks for that
   error condition in fs_reinit_merger() and does not pass the empty
   reader onwards to mtbl_merger_add_source().

 -- Jeremy C. Reed <reed@fsi.io>  Wed, 23 Nov 2016 10:27:11 -0600

mtbl (0.8.0)

  [ Alexey Spiridonov ]
  * mtbl_reader(3): New reader getters, which expose the values stored
    in the "metadata" (formerly "trailer") at the end of MTBL files. For
    example: the number of bytes of source data in the keys & values is
    available via mtbl_metadata_bytes_keys() & mtbl_metadata_bytes_values().

  * mtbl_writer(3): Allow foreign data to be written to the beginning of a
    file before its file descriptor is passed to mtbl_writer_init_fd().

  [ Robert Edmonds ]
  * Add mtbl_verify(1) utility which verifies the embedded data and index
    block checksums in an MTBL file.

  * Stop keeping dup()'d copies of the file descriptors passed to
    mtbl_reader_init_fd(). POSIX does not require a process to keep an open
    file descriptor corresponding to an mmap()'d file. This change allows a
    process to open more MTBL files than the process file descriptor limit.

  * mtbl_dump(1): Add silent ("-s") option which omits the actual dump output.
    This is useful when benchmarking decompression performance.

  * Add LZ4/LZ4HC compression support. This adds a new library dependency on
    liblz4.

  * mtbl_merge(1): Add block size ("-b") and compression algorithm ("-c")
    options.

  * mtbl_fileset(3): Add mtbl_fileset_reload_now() function that
    instantaneously checks and, if necessary, reloads the fileset.

 -- Robert Edmonds <edmonds@fsi.io>  Fri, 28 Aug 2015 17:36:39 -0400

mtbl (0.7.0)

  * mtbl_reader(3): New reader option 'madvise_random' which may drastically
    improve performance on seek-heavy workloads. It can be enabled by the
    library caller with the mtbl_reader_options_set_madvise_random() function.
    It can also be globally force-enabled or force-disabled at runtime by
    setting the environment variable MTBL_READER_MADVISE_RANDOM to "1" or "0".

 -- Robert Edmonds <edmonds@fsi.io>  Wed, 19 Nov 2014 12:43:12 -0500

mtbl (0.6.0)

  * Fix assertion failures with highly compressed data caused by the use of a
    fixed size decompression buffer (Issue #1).

  * Fix small memory leak during initialization in the mtbl_merge utility.

  * Fix leak-on-error-bugs in the reader, sorter, and fileset interfaces,
    detected by static analysis.

  * Drop "-Wl,--as-needed" from LDFLAGS.

  * Begin versioning the library's symbols. (Based on ld-version-script.m4
    from gnulib.)

 -- Robert Edmonds <edmonds@fsi.io>  Wed, 21 May 2014 16:24:17 -0400

mtbl (0.5)

  * The COPYRIGHT, LICENSE, and README.md files are now distributed in the
    tarball. These files were inadvertently not included in the previous
    release.

  * The build system now properly detects big endian architectures. The
    previous release inadvertently omitted this check, causing a test suite
    failure.

  * Verify that the length of the MTBL input is long enough to read the MTBL
    header block. This prevents invalid reads in mtbl_reader_init_fd(). See
    Debian bug #716628 for details. (http://bugs.debian.org/716628).

  * Make sure to install the manpages if they are available even if the
    manpages are not being rebuilt.

 -- Robert Edmonds <edmonds@fsi.io>  Fri, 31 Jan 2014 18:01:13 -0500

mtbl (0.4)

  * Update copyright and license statements as a result of the transition from
    Internet Systems Consortium to Farsight Security.

  * Replace the "librsf" submodule with the "libmy" subtree. This includes a
    faster CRC32C implementation on supported x86-64 CPUs.

  * mtbl_merge(1): rename the internal 'timespec_get' function, since this
    function name is used by ISO C11 and causes build failures on glibc >= 2.17.

  * mtbl_reader(3), mtbl_fileset(3): add missing assertions.

  * Install the pkg-config .pc file into the correct location on certain
    systems.

 -- Robert Edmonds <edmonds@fsi.io>  Tue, 21 Jan 2014 15:46:00 -0500

mtbl (0.3)

  * mtbl_dump(1): print error messages instead of assertion failures.

  * mtbl_merger(3): don't assert on NULL iterator.

  * mtbl_merger(3): avoid incorrectly outputing empty entries.

  * mtbl_merger(3): buffer concatenation optimization.

 -- Robert Edmonds <edmonds@isc.org>  Wed Dec 26 17:19:53 2012 -0500

mtbl (0.2)

  * Add mtbl_fileset(3) interface.

  * mtbl_merger(3): handle corner case where iterator is NULL after initial
    entry fill.

  * mtbl_merge(1): set MTBL block size of output via MTBL_MERGE_BLOCK_SIZE
    environment variable.

  * Refactor using common functions in librsf submodule.

 -- Robert Edmonds <edmonds@isc.org>  Wed, 23 May 2012 16:03:16 -0400

mtbl (0.1)

  * Initial release.

 -- Robert Edmonds <edmonds@isc.org>  Fri, 24 Feb 2012 19:05:54 -0500
