Version history — Plyvel 1.0.2 documentation

# Version history

## Plyvel 1.0.2

Release date: 2018-01-12

- Correctly build wide unicode Python 2.7 wheels (cp27-cp27mu, UCS4). (issue #65)

## Plyvel 1.0.1

Release date: 2018-01-05

- Provide binary packages (manylinux1 wheels) for Linux.

  These wheel packages have the LevelDB library embedded. This should make installation on many Linux systems easier since these packages do not depend on a recent LevelDB version being installed system-wide: running `pip install` will simply download and install the extension, instead of compiling it. (pr #64, issue #62, issue #63)

## Plyvel 1.0.0

Release date: 2018-01-03

- First 1.x release. This library is quite mature, so there is no reason to keep using 0.x version numbers. While at it, switch to semantic versioning.
- Drop support for older Python versions. Minimum versions are now Python 3.4+ for modern Python and Python 2.7+ for legacy Python.
- The mimimum LevelDB version is now 1.20, which added an option for the maximum file size, which is now exposed in Plyvel. (pr #61)
- The various `.put()` methods are no longer restricted to just bytes (str in Python 2), but will accept any type implementing Python’s buffer protocol, such as bytes, bytearray, and memoryview. Note that this only applies to values; keys must still be bytes. (issue #52)

## Plyvel 0.9

Release date: 2014-08-27

- Ensure that the Python GIL is initialized when a custom comparator is used, since the background thread LevelDB uses for compaction calls back into Python code in that case. This makes single-threaded programs using a custom comparator work as intended. (issue #35)

## Plyvel 0.8

Release date: 2013-11-29

- Allow snapshots to be closed explicitly using either `Snapshot.close()` or a `with` block (issue #21)

## Plyvel 0.7

Release date: 2013-11-15

- New raw iterator API that mimics the LevelDB C++ interface. See `DB.raw_iterator()` and `RawIterator`. (issue #17)
- Migrate to pytest and tox for testing (issue #24)
- Performance improvements in iterator and write batch construction. The internal calls within Plyvel are now a bit faster, and the weakref handling required for iterators is now a lot faster due to replacing `weakref.WeakValueDictionary` with manual weakref handling.
- The fill_cache, verify_checksums, and sync arguments to various methods are now correctly taken into account everywhere, and their default values are now booleans reflecting the the LevelDB defaults.

## Plyvel 0.6

Release date: 2013-10-18

- Allow iterators to be closed explicitly using either `Iterator.close()` or a `with` block (issue #19)
- Add useful `__repr__()` for `DB` and `PrefixedDB` instances (issue #16)

## Plyvel 0.5

Release date: 2013-09-17

- Fix `Iterator.seek()` for `PrefixedDB` iterators (issue #15)
- Make some argument type checking a bit stricter (mostly `None` checks)
- Support LRU caches larger than 2GB by using the right integer type for the `lru_cache_size` `DB` constructor argument.
- Documentation improvements

## Plyvel 0.4

Release date: 2013-06-17

- Add optional ‘default’ argument for all `.get()` methods (issue #11)

## Plyvel 0.3

Release date: 2013-06-03

- Fix iterator behaviour for reverse iterators using a prefix (issue #9)
- Documentation improvements

## Plyvel 0.2

Release date: 2013-03-15

- Fix iterator behaviour for iterators using non-existing start or stop keys (issue #4)

## Plyvel 0.1

Release date: 2012-11-26

- Initial release