# Changelog

## 0.44.2 (2025-11-05)

- breaking: Switched internal column-family map to a HashMap; `DBCommon::cf_names()` no longer guarantees sorted order (order is unspecified and may vary) (zaidoon1)
- Add zero-copy MultiGet pinned APIs: `DB::multi_get_pinned`, `multi_get_pinned_opt`, `multi_get_pinned_cf`, `multi_get_pinned_cf_opt` for efficient batch point lookups without value copies. (zaidoon1)
- Add fast prefix existence APIs: `DB::prefix_exists`, `prefix_exists_opt`, `prefix_exists_cf`, `prefix_exists_cf_opt`. (zaidoon1)
- Add `PrefixProber` reusable iterator and constructors `prefix_prober`, `prefix_prober_cf`, `prefix_prober_with_opts`, `prefix_prober_cf_with_opts` to amortize iterator setup cost for high-QPS prefix checks. (zaidoon1)
- unix: Optimize `ffi_util::to_cpath` to perform zero-copy path conversion using `OsStrExt::as_bytes()` when available. (zaidoon1)
- Expose APIs to import and export Column Families (pcholakov)

## 0.44.1 (2025-10-23)

- simplify SstFileManager by using default Env internally (zaidoon1)

## 0.44.0 (2025-10-23)

- upgrade to RocksDB 10.7.5 (zaidoon1)
- feat: expose enable_file_deletions/disable_file_deletions (jszwec)
- expose SstFileManager and Options::set_sst_file_manager (zaidoon1)
- add add_compact_on_deletion_collector_factory_min_file_size option (zaidoon1)
- expose set_cache_index_and_filter_blocks_with_high_priority (zaidoon1)
- Options.set_callback_logger: Make closure lifetimes safe (evanj)
- add support for SingleDelete (zaidoon1)

## 0.43.0 (2025-08-11)

- upgrade to RocksDB 10.5.1 (zaidoon1)
- clippy fixes (zaidoon1)
- Ensure jemalloc is linked in when the feature is enabled (#1026) (timothyg-stripe)
- fix set_skip_prepare transaction option to call correct c api (zaidoon1)
- Expose get_pinned_from_batch_and_db for WriteBatchWithIndex (tillrohrmann)
- Expose WBWI through rust-rocksdb (tillrohrmann)
- Access to open column families names (AhmedSoliman)
- Pass write batch by reference (AhmedSoliman)
- Use parking_lot's RwLock (AhmedSoliman)
- minor code refactor to take out different complex options outside of db_options file (zaidoon1)
- feat: expose set_memtable_avg_op_scan_flush_trigger (zaidoon1)
- mark set_skip_checking_sst_file_sizes_on_db_open as deprecated (#1017) (evanj)
- Implement WriteBatchIteratorCf trait and update related methods for compatibility (#1002) (RiversJin)
- Add get_approximate_sizes (#998) (ran-openai)
- ffi_util.rs: improve opt_bytes_to_str to avoid potential use-after-free (#693) (#1003) (Chain-Fox)
- db_options.rs: deprecate set_ignore_range_deletions (RocksDB 10.2.1) (#1000) (evanj)
- prep work for upgrading to rust 2024 (zaidoon1)

## 0.42.1 (2025-07-15)

- fix event listener implementation and add partial support for on_background_error (zaidoon1)

## 0.42.0 (2025-07-14)

- add event listener support (zaidoon1)
- upgrade to RocksDB 10.4.2 (zaidoon1)
- fix: gcc15 build support (lucasl0st)

## 0.41.0 (2025-04-29)

- doc db_iterator.rs: Minor edits to rustdoc; more links (evanj)
- upgrade to RocksDB 10.2.1 (zaidoon1)
- feat: expose set_memtable_op_scan_flush_trigger (zaidoon1)

## 0.40.0 (2025-04-19)

- upgrade to RocksDB 10.1.3 (zaidoon1)

## 0.39.0 (2025-04-01)

- upgrade to RocksDB 10.0.1 (zaidoon1)
- bump snappy to 1.2.2 (zaidoon1)
- bump lz4 to v1.11 (zaidoon1)

## 0.38.0 (2025-03-30)

- upgrade to RocksDB 9.11.2 (zaidoon1)

## 0.37.0 (2025-03-07)

- Support builds on AIX (mustartt)
- WriteBatch: add support for WriteBatch::put_log_data (lucasvuillier)
- Fix C++ linking (brndnmtthws)
- add ROCKSDB_AUXV_GETAUXVAL_PRESENT for supported Linux systems (zaidoon1)
- Add backup options and db options sync/fsync getters/setters (timvisee)
- upgrade to RocksDB 9.11.1 (zaidoon1)
- bump msrv to 1.81.0 (zaidoon1)

## 0.36.0 (2025-01-03)

- Fix some typos (DeVikingMark)
- chore: fix multiple typos of different importance (crStiv)
- feat: allow to set per cf ttl (0xdeafbeef)
- Fix some typos (teenager-ETH)
- Fix future clippy warnings (niklasf)
- upgrade to RocksDB 9.10.0 (zaidoon1)

## 0.35.0 (2024-12-17)

- DB: Implement get_db_identity using rocksdb_get_db_identity (evanj)
- Add lto feature (0xdeafbeef)
- Options: Add set_track_and_verify_wals_in_manifest (evanj)
- upgrade to RocksDB 9.9.3 (zaidoon1)
- add set_use_delta_encoding() to Options (jevolk)

## 0.34.0 (2024-12-04)

- Fix two tests that want to write to the current working directory (mr-c)
- add missing supported bsd oses (drizzt)
- Fix column family creation race. (stuhood)
- Allow using static bindgen feature (Congyuwang)
- tests: use tempfile instead of the current working directory (mr-c)
- implement with_capacity for WriteBatch (0xdeafbeef)
- ci: make most directories read-only before running the tests (mr-c)
- More temp directories for tests (mr-c)
- fix(build): add ROCKSDB_SCHED_GETCPU_PRESENT for Linux build config (popcnt1)
- upgrade to RocksDB 9.8.4 (zaidoon1)

## 0.33.0 (2024-11-01)

- upgrade to RocksDB 9.7.4 (zaidoon1)

## 0.32.0 (2024-10-23)

- Decrement refcount after registering info loggers (jevolk)
- upgrade to RocksDB 9.7.3 (zaidoon1)

## 0.31.0 (2024-10-16)

- Expose LRU cache options (athre0z)
- add Env::from_raw constructor (jgraettinger)
- Fix unsoundness via impure AsRef (niklasf)
- Allow setting logging callback (jevolk)
- upgrade to RocksDB 9.7.2 (zaidoon1)

## 0.30.0 (2024-09-06)

- Improve statistics by auto gen enum Ticker & enum Histogram (rockeet)
- upgrade to RocksDB 9.6.1 (zaidoon1)

## 0.29.0 (2024-08-21)

- Implement Sync for BoundColumnFamily (jhpratt)
- use the provided system rocksdb prebuilt on freebsd (girlbossceo)
- TransactionDB support in MemoryUsageBuilder (4TT1L4)
- upgrade to RocksDB 9.5.2 (zaidoon1)

## 0.28.1 (2024-07-26)

- allow unprefixed musl jemalloc targets (girlbossceo)
- bump tikv-jemalloc-sys to 0.6 (girlbossceo)
- fix: android build in 32-bit devices (LucasXu0)
- Support user defined timestamp in rust bindings (siyuan0322)
- Bump lz4 1.10 (agourlay)
- feat: Properties for TransactionDB #899 (4TT1L4)
- Improvements to user defined timestamp (larry0x)

## 0.28.0 (2024-07-13)

- Add support for enabling blob cache (exabytes18)
- upgrade to RocksDB 9.4.0 (zaidoon1)

## 0.27.1 (2024-07-07)

- Add block based metadata cache options (zaidoon1)
- add feature flag to enable ZSTD_STATIC_LINKING_ONLY (zaidoon1)
- fix stats comments (zaidoon1)
- enable experimental feature in zstd-sys (zaidoon1)

## 0.27.0 (2024-06-29)

- Add option set_avoid_unnecessary_blocking_io (w41ter)
- add option to enable auto tuned ratelimiter (w41ter)
- clean up rate limiter object properly for set_ratelimiter_with_mode (zaidoon1)
- upgrade to RocksDB 9.3.1 (zaidoon1)
- Add option set_compaction_pri (zaidoon1)

## 0.26.0 (2024-04-24)

- Add delete_range to OptimisticTransactionDB (vadim-su)
- Bump snappy to 1.2.0 (aleksuss)
- docs: document that default cf doesn't inherit db open options (0xdeafbeef)
- upgrade to RocksDB 9.2.1 (zaidoon1)

## 0.25.0 (2024-04-23)

- Update to RocksDB 9.1.1 (zaidoon1)

## 0.24.0 (2024-04-18)

- update README to document the various crate features that can be enabled (zaidoon1)
- Update to RocksDB 9.1.0 (zaidoon1)

## 0.23.2 (2024-03-30)

- fix set_options_from_string binding (zaidoon1)

## 0.23.1 (2024-03-28)

- make ColumnFamily Sync (zaidoon1)
- fix histogram stats after enum re-shuffle introduced in rocksdb v9.0 (zaidoon1)
- Add linking libatomic command to build.rs to allow building for riscv64gc-unknown-linux-gnu target (willemolding)
- Make BackupEngine Send (widagdos)
- Add readme for mt_static feature (spector-9)
- Add method to set DBOptions from string (jevolk)

## 0.23.0 (2024-03-20)

- Update to RocksDB 9.0.0 (zaidoon1)
- Expose rate limiter with mode feature (zaidoon1)
- Revert portable feature (zaidoon1)

## 0.22.8 (2024-03-15)

- Expose io-timeout/deadline read options (zaidoon1)
- modernize CI and other CI related clean (zaidoon1)
- replace unmaintained dev dependency (zaidoon1)
- more ci clean up (zaidoon1)
- fix: ptr::copy requires both ptrs to be non-null (ruanpetterson)
- Feat: Adds crt_static method (spector-9)
- Add portable feature for RocksDB build (sujayakar)
- Update README.md with a new section for the portable feature (sujayakar)

## 0.22.7 (2024-03-02)

- don't use system jemalloc (zaidoon1)

## 0.22.6 (2024-02-27)

- Update to RocksDB 8.11.3 (zaidoon1)
- Expose set_ttl (zaidoon1)

## 0.22.5 (2024-02-26)

- add feature flag to enable malloc-usable-size used by optimize_filtes_for_memory feature (zaidoon1)
- gate malloc-usable-size to linux only (zaidoon1)
- actually enable jemalloc when feature is used on linux (zaidoon1)

## 0.22.4 (2024-02-20)

- Update to RocksDB 8.10.2 (zaidoon1)
- Fix build status badge and other bits in README.md (jdanford)

## 0.22.3 (2024-02-13)

- Export memory usage builder and MemoryUsage structs to users (AhmedSoliman)
- Make FlushOptions Send and Sync (jansegre)

## 0.22.2 (2024-02-12)

- Expose rocksdb cumulative statistics and histograms (AhmedSoliman)

## 0.22.1 (2024-02-10)

- rename librocksdb-sys library (zaidoon1)

## 0.22.0 (2024-02-10)

- update code imports after package name change and clean up README/MAINTAINERHSIP (zaidoon1)
- update README and package name (zaidoon1)
- bump dependencies & upgrade to latest rust version (zaidoon1)
- update doc and para name for optimize_for_point_lookup (XiangpengHao)
- Add WriteBufferManager support (benoitmeriaux)
- Update to RocksDB 8.10.0 (zaidoon1)
- Make `CompactOptions` `Send` and `Sync` (GodTamIt)
- Update hash commit of the rocksdb submodule to corresponding v8.9.1 tag (aleksuss)
- feat: Expose set_periodic_compaction_seconds (zaidoon1)
- Update RocksDB to 8.9.1 (zaidoon1)
- feat: Expose set_auto_readahead_size (niklasf)
- feat: Expose wait_for_compact (zaidoon1)
- Fix bug in DBWALIterator that would return updates before the given sequence (schmidek)
- feat: Expose compact_on_deletion_collector_factory (zaidoon1)
- Update RocksDB to 8.8.1 (zaidoon1)
- feat: Expose set_wal_compression_type (ovr)
- Fix typo in documentation (jazarine)
- fix: add raw iterator validation before calling next method (aleksuss)
- feat: expose compression option parallel_threads (zaidoon1)
- feat: expose set_optimize_filters_for_memory (zaidoon1)
- Update RocksDB to 8.6.7 (aleksuss)
- Expose `ReadTier` publicly (tinct-martini)
- Update RocksDB to 8.5.3 (niklasf)
- feat: support column_family_metadata, column_family_metadata_cf (ovr)
- Remove wrong outlive requirements for cache in docs (zheland)
- Add `allow_ingest_behind` ffi call for DB Options (siyuan0322)
- Wrap prop names into a PropName type offering free conversion to str (mina86)
- Remove temporary boxed keys in batched_multi_get (axnsan12)
- Update to RocksDB 8.3.2 (niklasf)
- Expose flush_cfs_opt to flush multiple column families (lizhanhui)
- Prefer rocksdb_free to free for RocksDB memory (niklasf)
- Update snappy to 1.1.10 (timsueberkrueb)
- Free memory on writebatch index and avoid unnecessary clones (jkurian)

## 0.21.0 (2023-05-09)

- Add doc-check to CI with fix warnings in docs (YuraKotov)
- Fix rustdoc::broken-intra-doc-links errors (YuraKotov)
- Fix 32-bit ARM build (EyeOfPython)
- Allow specifying checksum type (romanz)
- Enable librocksdb-sys to be built by rustc_codegen_cranelift (ZePedroResende)
- Update to RocksDB 8.0.0 (niklasf)
- Block cache creation failure is not recoverable (niklasf)
- Update iOS min version to 12 in the build script (mighty840)
- Actually enable `io-uring` (niklasf)
- Update to RocksDB 8.1.1 (niklasf)
- Add `Cache::new_hyper_clock_cache()` (niklasf)
- Retrieve Value from KeyMayExist if value found in Cache or Memory (Congyuwang)
- Support for comparators as closures (pegesund)
- Fix bug in DBWALIterator that would miss updates (Zagitta)

## 0.20.1 (2023-02-10)

- Fix supporting MSRV 1.60.0 (aleksuss)

## 0.20.0 (2023-02-09)

- Support RocksDB 7.x `BackupEngineOptions` (exabytes18)
- Fix `int128` compatibility check (Dirreke)
- Add `Options::load_latest` method to load the latest options from RockDB (Congyuwang)
- Bump bindgen to 0.64.0 (cwlittle)
- Bump rocksdb to 7.9.2 (kwek20)
- Make `set_snapshot` method public (a14e)
- Add `drop_cf` function to `TransactionDB` (bothra90)
- Bump rocksdb to 7.8.3 (aleksuss)
- Add doc for `set_cache_index_and_filter_blocks` (guerinoni)
- Re-run `build.rs` if env vars change (drahnr)
- Add `WriteBatch::data` method (w41ter)
- Add `DB::open_cf_with_opts` method (w41ter)
- Use lz4-sys crate rather then submodule (niklasf)
- Make create_new_backup_flush generic (minshao)

## 0.19.0 (2022-08-05)

- Add support for building with `io_uring` on Linux (parazyd)
- Change iterators to return Result (mina86)
- Support RocksDB transaction (yiyuanliu)
- Avoid pulling in dependencies via static feature flag (niklasf)
- Bump `rocksdb` to 7.4.4 (niklasf)
- Bump `tikv-jemalloc-sys` to 0.5 (niklasf)
- Update `set_use_fsync` comment (nazar-pc)
- Introduce ReadOptions::set_iterate_range and PrefixRange (mina86)
- Bump `rocksdb` to 7.4.3 (aleksuss)
- Don’t hold onto ReadOptions.inner when iterating (mina86)
- Bump `zstd-sys` from 1.6 to 2.0 (slightknack)
- Enable a building on the iOS platform (dignifiedquire)
- Add DBRawIteratorWithThreadMode::item method (mina86)
- Use NonNull in DBRawIteratorWithThreadMode (mina86)
- Tiny refactoring including fix for UB (niklasf)
- Add batched version MultiGet API (yhchiang-sol)
- Upgrade to rocksdb v7.3.1 (yhchiang-sol)
- Consistently use `ffi_util::to_cpath` to convert `Path` to `CString` (mina86)
- Convert properties to `&CStr` (mina86)
- Allow passing `&CStr` arguments (mina86)
- Fix memory leak when reading properties and avoid memory allocation (mina86)
- Fix Windows UTF-8 build flag (rajivshah3)
- Use more target features to build librocksdb-sys (niklasf)
- Fix `bz_internal_error` symbol multiply defined (nanpuyue)
- Bump rocksdb to 7.1.2 (dignifiedquire)
- Add BlobDB options (dignifiedquire)
- Add snapshot `PinnableSlice` based API (zheland)

## 0.18.0 (2022-02-03)

- Add open_cf_descriptor methods for Secondary and ReadOnly AccessType (steviez)
- Make Ribbon filters available (niklasf)
- Change versioning scheme of `librocksdb-sys` crate (aleksuss)
- Upgrade to RocksDB 6.28.2 (akrylysov)
- Fix theoretical UB while transmuting Arc (niklasf)
- Support configuring bottom-most compression level (mina86)
- Add BlockBasedOptions::set_whole_key_filtering (niklasf)
- Add constants for all supported properties (steviez)
- Make CacheWrapper and EnvWrapper Send and Sync (aleksuss)
- Replace mem::transmute with narrower conversions (niklasf)
- Optimize non-overlapping copy in raw_data (niklasf)
- Support multi*get*\* methods (olegnn)
- Optimize multi_get_cf_opt() to use size hint (niklasf)
- Fix typo in set_background_purge_on_iterator_cleanup method (Congyuwang)
- Use external compression crates where possible (Dr-Emann)
- Update compression dependencies (akrylysov)
- Add method for opening DB with ro access and cf descriptors (nikurt)
- Support restoring from a specified backup (GoldenLeaves)
- Add merge operands iterator (0xdeafbeef)
- Derive serde::{Serialize, Deserialize} for configuration enums (thibault-martinez)
- Add feature flag for runtime type information and metadata (jgraettinger)
- Add set_info_log_level to control log verbosity (tkintscher)
- Replace jemalloc-sys for tikv-jemalloc-sys (Rexagon)
- Support UTF-8 file paths on Windows (rajivshah3)
- Support building RocksDB with jemalloc (akrylysov)
- Add rocksdb WAL flush api (duarten)
- Update rocksdb to v6.22.1 (duarten)

## 0.17.0 (2021-07-22)

- Fix `multi_get` method (mikhailOK)
- Bump `librocksdb-sys` up to 6.19.3 (olegnn)
- Add support for the cuckoo table format (rbost)
- RocksDB is not compiled with SSE4 instructions anymore unless the corresponding features are enabled in rustc (mbargull)
- Bump `librocksdb-sys` up to 6.20.3 (olegnn, akrylysov)
- Add `DB::key_may_exist_cf_opt` method (stanislav-tkach)
- Add `Options::set_zstd_max_train_bytes` method (stanislav-tkach)
- Mark Cache and Env as Send and Sync (akrylysov)
- Allow cloning the Cache and Env (duarten)
- Make SSE inclusion conditional for target features (mbargull)
- Use Self where possible (adamnemecek)
- Don't leak dropped column families (ryoqun)

## 0.16.0 (2021-04-18)

- Add `DB::cancel_all_background_work` method (stanislav-tkach)
- Bump `librocksdb-sys` up to 6.13.3 (aleksuss)
- Add `multi_get`, `multi_get_opt`, `multi_get_cf` and `multi_get_cf_opt` `DB` methods (stanislav-tkach)
- Allow setting options on a ColumnFamily (romanz)
- Fix logic related to merge operator settings (BoOTheFurious)
- Export persist_period_sec option and background_threads (developerfred)
- Remove unneeded bindgen features (Kixunil)
- Add merge delete_callback omitted by mistake (zhangsoledad)
- Bump `librocksdb-sys` up to 6.17.3 (ordian)
- Remove the need for `&mut self` in `create_cf` and `drop_cf` (v2) (ryoqun)
- Keep Cache and Env alive with Rc (acrrd)
- Add `DB::open_cf_with_ttl` method (fdeantoni)

## 0.15.0 (2020-08-25)

- Fix building rocksdb library on windows host (aleksuss)
- Add github actions CI for windows build (aleksuss)
- Update doc for `Options::set_compression_type` (wqfish)
- Add clippy linter in CI (aleksuss)
- Use DBPath for backup_restore test (wqfish)
- Allow to build RocksDB with a different stdlib (calavera)
- Add some doc-comments and tiny refactoring (aleksuss)
- Expose `open_with_ttl`. (calavera)
- Fixed build for `x86_64-linux-android` that doesn't support PCLMUL (vimmerru)
- Add support for `SstFileWriter` and `DB::ingest_external_file` (methyl)
- Add set_max_log_file_size and set_recycle_log_file_num to the Options (stanislav-tkach)
- Export the `DEFAULT_COLUMN_FAMILY_NAME` constant (stanislav-tkach)
- Fix slice transformers with no in_domain callback (nelhage)
- Don't segfault on failed a merge operator (nelhage)
- Adding read/write/db/compaction options (linxGnu)
- Add dbpath and env options (linxGnu)
- Add compaction filter factory API (unrealhoang)
- Add link stdlib when linking prebuilt rocksdb (unrealhoang)
- Support fetching sst files metadata, delete files in range, get mem usage (linxGnu)
- Do not set rerun-if-changed=build.rs (xu-cheng)
- Use pretty_assertions in tests (stanislav-tkach)
- librocksdb-sys: update rocksdb to 6.11.4 (ordian)
- Adding backup engine info (linxGnu)
- Implement `Clone` trait for `Options` (stanislav-tkach)
- Added `Send` implementation to `WriteBatch` (stanislav-tkach)
- Extend github actions (stanislav-tkach)
- Avoid copy for merge operator result using delete_callback (xuchen-plus)

## 0.14.0 (2020-04-22)

- Updated lz4 to v1.9.2 (ordian)
- BlockBasedOptions: expose `format_version`, `[index_]block_restart_interval` (ordian)
- Improve `ffi_try` macro to make trailing comma optional (wqfish)
- Add `set_ratelimiter` to the `Options` (PatrickNicholas)
- Add `set_max_total_wal_size` to the `Options` (wqfish)
- Simplify conversion on iterator item (zhangsoledad)
- Add `flush_cf` method to the `DB` (wqfish)
- Fix potential segfault when calling `next` on the `DBIterator` that is at the end of the range (wqfish)
- Move to Rust 2018 (wqfish)
- Fix doc for `WriteBatch::delete` (wqfish)
- Bump `uuid` and `bindgen` dependencies (jonhoo)
- Change APIs that never return error to not return `Result` (wqfish)
- Fix lifetime parameter for iterators (wqfish)
- Add a doc for `optimize_level_style_compaction` method (NikVolf)
- Make `DBPath` use `tempfile` (jder)
- Refactor `db.rs` and `lib.rs` into smaller pieces (jder)
- Check if we're on a big endian system and act upon it (knarz)
- Bump internal snappy version up to 1.1.8 (aleksuss)
- Bump rocksdb version up to 6.7.3 (aleksuss)
- Atomic flush option (mappum)
- Make `set_iterate_upper_bound` method safe (wqfish)
- Add support for data block hash index (dvdplm)
- Add some extra config options (casualjim)
- Add support for range delete APIs (wqfish)
- Improve building `librocksdb-sys` with system libraries (basvandijk)
- Add support for `open_for_read_only` APIs (wqfish)
- Fix doc for `DBRawIterator::prev` and `next` methods (wqfish)
- Add support for `open_as_secondary` APIs (calavera)

## 0.13.0 (2019-11-12)

### Changes

- Added `ReadOptions::set_verify_checksums` and
  `Options::set_level_compaction_dynamic_level_bytes` methods (ordian)
- Array of bytes has been changed for pinnable slice for get operations (nbdd0121)
- Implemented `Sync` for `DBRawIterator` (nbdd0121)
- Removed extra copy in DBRawIterator (nbdd0121)
- Added `Options::max_dict_bytes` and `Options::zstd_max_training_bytes` methods(methyl)
- Added Android support (rtsisyk)
- Added lifetimes for `DBIterator` return types (ngotchac)
- Bumped rocksdb up to 6.2.4 (aleksuss)
- Disabled trait derivation for librocksdb-sys (EyeOfPython)
- Added `DB::get_updates_since()` to iterate write batches in a given sequence (nlfiedler)
- Added `ReadOptions::set_tailing()` to create a tailing iterator that continues to
  iterate over the database as new records are added (cjbradfield)
- Changed column families storing (aleksuss)
- Exposed the `status` method on iterators (rnarubin)

## 0.12.3 (2019-07-19)

### Changes

- Enabled sse4.2/pclmul for accelerated crc32c (yjh0502)
- Added `set_db_write_buffer_size` to the Options API (rnarubin)
- Bumped RocksDB to 6.1.2 (lispy)
- Added `Sync` and `Send` implementations to `Snapshot` (pavel-mukhanov)
- Added `raw_iterator_cf_opt` to the DB API (rnarubin)
- Added `DB::latest_sequence_number` method (vitvakatu)

## 0.12.2 (2019-05-03)

### Changes

- Updated `compact_range_cf` to use generic arguments (romanz)
- Removed allocations from `SliceTransform` implementation (ekmartin)
- Bumped RocksDB to 5.18.3 (baptistejamin)
- Implemented `delete_range` and `delete_range_cf` (baptistejamin)
- Added contribution guide (rhurkes)
- Cleaned up documentation for `ReadOptions.set_iterate_upper_bound` method (xiaobogaga)
- Added `flush` and `flush_opt` operations (valeriansaliou)

## 0.12.1 (2019-03-27)

### Changes

- Added `iterator_cf_opt` function to `DB` (elichai)
- Added `set_allow_mmap_writes` and `set_allow_mmap_reads` functions to `Options` (aleksuss)

## 0.12.0 (2019-03-10)

### Changes

- Added support for PlainTable factories (ekmartin)
- Added ability to restore latest backup (rohitjoshi)
- Added support for pinnable slices (xxuejie)
- Added ability to get property values (ekmartin)
- Simplified opening database when using non-default column families (iSynaptic)
- `ColumnFamily`, `DBIterator` and `DBRawIterator` now have lifetime parameters to prevent using them after the `DB` has been dropped (iSynaptic)
- Creating `DBIterator` and `DBRawIterator` now accept `ReadOptions` (iSynaptic)
- All database operations that accepted byte slices, `&[u8]`, are now generic and accept anything that implements `AsRef<[u8]>` (iSynaptic)
- Bumped RocksDB to version 5.17.2 (aleksuss)
- Added `set_readahead_size` to `ReadOptions` (iSynaptic)
- Updated main example in doc tests (mohanson)
- Updated requirements documentation (jamesray1)
- Implemented `AsRef<[u8]>` for `DBVector` (iSynaptic)

## 0.11.0 (2019-01-10)

### Announcements

- This is the first release under the new [Maintainership](MAINTAINERSHIP.md) model.
  Three contributors have been selected to help maintain this library -- (aleksuss) ([@aleksuss](https://github.com/aleksuss)), Jordan Terrell ([@iSynaptic](https://github.com/iSynaptic)), and Ilya Bogdanov ([@vitvakatu](https://github.com/vitvakatu)). Many thanks to Tyler Neely ([@spacejam](https://github.com/spacejam)) for your support while taking on this new role.

- A [gitter.im chat room](https://gitter.im/rust-rocksdb/Lobby) has been created. Although it's not guaranteed to be "staffed", it may help to collaborate on changes to `rust-rocksdb`.

### Changes

- added LZ4, ZSTD, ZLIB, and BZIP2 compression support (iSynaptic)
- added support for `Checkpoint` (aleksuss)
- added support for `SliceTransform` (spacejam)
- added `DBPath` struct to ensure test databases are cleaned up (ekmartin, iSynaptic)
- fixed `rustfmt.toml` to work with newer `rustfmt` version (ekmartin, iSynaptic)
- bindgen bumped up to 0.43 (s-panferov)
- made `ColumnFamily` struct `Send` (Tpt)
- made `DBIterator` struct `Send` (Elzor)
- `create_cf` and `drop_cf` methods on `DB` now work with immutable references (aleksuss)
- fixed crash in `test_column_family` test on macOS (aleksuss)
- fixed/implemented CI builds for macOS and Windows (aleksuss, iSynaptic)
- exposed `set_skip_stats_update_on_db_open` option (romanz)
- exposed `keep_log_file_num` option (romanz)
- added ability to retrieve `WriteBatch` serialized size (romanz)
- added `set_options` method to `DB` to allow changing options without closing and re-opening the database (romanz)

## 0.10.1 (2018-07-17)

- bump bindgen to 0.37 (ekmartin)
- bump rocksdb to 5.14.2 (ekmartin)
- add disable_cache to block-based options (ekmartin)
- add set_wal_dir (ekmartin)
- add set_memtable_prefix_bloom_ratio (ekmartin)
- add MemtableFactory support (ekmartin)
- add full_iterator (ekmartin)
- allow index type specification on block options (ekmartin)
- fix windows build (iSynaptic)

## 0.10.0 (2018-03-17)

- Bump rocksdb to 5.11.3 (spacejam)

### New Features

- Link with system rocksdb and snappy libs through envvars (ozkriff)

### Breaking Changes

- Fix reverse iteration from a given key (ongardie)

## 0.9.1 (2018-02-10)

### New Features

- SliceTransform support (spacejam)

## 0.9.0 (2018-02-10)

### New Features

- Allow creating iterators over prefixes (glittershark)

### Breaking Changes

- Open cfs with options (garyttierney, rrichardson)
- Non-Associative merge ops (rrichardson)

## 0.8.3 (2018-02-10)

- Bump rocksdb to 5.10.2 (ongardie)
- Add Send marker to Options (iSynaptic)
- Expose advise_random_on_open option (ongardie)

## 0.8.2 (2017-12-28)

- Bump rocksdb to 5.7.1 (jquesnelle)

## 0.8.1 (2017-09-08)

- Added list_cf (jeizsm)

## 0.8.0 (2017-09-02)

- Removed set_disable_data_sync (glittershark)

## 0.7.2 (2017-09-02)

- Bumped rocksdb to 5.6.2 (spacejam)

## 0.7.1 (2017-08-29)

- Bumped rocksdb to 5.6.1 (vmx)

## 0.7 (2017-07-26)

### Breaking Changes

- Bumped rocksdb to 5.4.6 (derekdreery)
- Remove `use_direct_writes` now that `use_direct_io_for_flush_and_compaction` exists (derekdreery)

### New Features

- ReadOptions is now public (rschmukler)
- Implement Clone and AsRef<str> for Error (daboross)
- Support for `seek_for_prev` (kaedroho)
- Support for DirectIO (kaedroho)

### Internal Cleanups

- Fixed race condition in tests (debris)
- Move tests to the default `tests` directory (vmx)

## 0.6.1 (2017-03-13)

### New Features

- Support for raw iterator access (kaedroho)

## 0.6 (2016-12-18)

### Breaking Changes

- Comparator function now returns an Ordering (alexreg)

### New Features

- Compaction filter (tmccombs)
- Support for backups (alexreg)

  0.5 (2016-11-20)

### Breaking changes

- No more Writable trait, as WriteBatch is not thread-safe as a DB (spacejam)
- All imports of `rocksdb::rocksdb::*` should now be simply `rocksdb::*` (alexreg)
- All errors changed to use a new `rocksdb::Error` type (kaedroho, alexreg)
- Removed `Options.set_filter_deletes` as it was removed in RocksDB (kaedroho)
- Renamed `add_merge_operator` to `set_merge_operator` and `add_comparator` to `set_comparator` (kaedroho)

### New Features

- Windows support (development by jsgf and arkpar. ported by kaedroho)
- The RocksDB library is now built at crate compile-time and statically linked with the resulting binary (development by jsgf and arkpar. ported by kaedroho)
- Cleaned up and improved coverage and tests of the ffi module (alexreg)
- Added many new methods to the `Options` type (development by ngaut, BusyJay, zhangjinpeng1987, siddontang and hhkbp2. ported by kaedroho)
- Added `len` and `is_empty` methods to `WriteBatch` (development by siddontang. ported by kaedroho)
- Added `path` method to `DB` (development by siddontang. ported by kaedroho)
- `DB::open` now accepts any type that implements `Into<Path>` as the path argument (kaedroho)
- `DB` now implements the `Debug` trait (kaedroho)
- Add iterator_cf to snapshot (jezell)
- Changelog started
