summaryrefslogtreecommitdiffstats
path: root/third_party/rust/lmdb-rkv/README.md
blob: 791a1a5fc5672cdf9e726a947fba9f2072e5168b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
[![Build Status](https://travis-ci.org/mozilla/lmdb-rs.svg?branch=master)](https://travis-ci.org/mozilla/lmdb-rs)
[![Windows Build status](https://ci.appveyor.com/api/projects/status/id69kkymorycld55/branch/master?svg=true)](https://ci.appveyor.com/project/mykmelez/lmdb-rs-rrsb3/branch/master)

# lmdb-rs

Idiomatic and safe APIs for interacting with the
[Symas Lightning Memory-Mapped Database (LMDB)](http://symas.com/mdb/).

This repo is a fork of [danburkert/lmdb-rs](https://github.com/danburkert/lmdb-rs)
with fixes for issues encountered by [mozilla/rkv](https://github.com/mozilla/rkv).

## Building from Source

```bash
git clone --recursive git@github.com:mozilla/lmdb-rs.git
cd lmdb-rs
cargo build
```

## Publishing to crates.io

To publish the lmdb-rkv-sys crate to crates.io:

```bash
git clone --recursive git@github.com:mozilla/lmdb-rs.git
cd lmdb-rs/lmdb-sys
# Update the version string in lmdb-sys/Cargo.toml and lmdb-sys/src/lib.rs.
cargo publish
git tag lmdb-rkv-sys-$VERSION # where $VERSION is the updated version string
git push git@github.com:mozilla/lmdb-rs.git --tags
```

To publish the lmdb-rkv crate to crates.io:

```bash
git clone --recursive git@github.com:mozilla/lmdb-rs.git
cd lmdb-rs
# Update the version string in Cargo.toml and src/lib.rs and temporarily change
# the lmdb-rkv-sys dependency in Cargo.toml to the latest version on crates.io.
cargo publish
git tag $VERSION # where $VERSION is the updated version string
git push git@github.com:mozilla/lmdb-rs.git --tags
# Change the lmdb-rkv-sys dependency in Cargo.toml back to a path dependency
# on the ./lmdb-sys directory.
```

## Features

* [x] lmdb-sys.
* [x] Cursors.
* [x] Zero-copy put API.
* [x] Nested transactions.
* [x] Database statistics.