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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
[]
= "heed"
= "0.20.5"
= ["Kerollmops <renault.cle@gmail.com>"]
= "A fully typed LMDB wrapper with minimum overhead"
= "MIT"
= "https://github.com/Kerollmops/heed"
= ["lmdb", "database", "storage", "typed"]
= ["database", "data-structures"]
= "../README.md"
= "2021"
[]
= { = "2.6.0", = ["serde"] }
= { = "1.5.0", = false }
= { = "0.20.0", = "../heed-traits" }
= { = "0.20.1", = false, = "../heed-types" }
= "0.2.155"
= { = "0.2.4", = "../lmdb-master-sys" }
= "1.19.0"
= "0.6.0"
= { = "1.0.203", = ["derive"], = true }
= "1.0.1"
[]
= { = "1.0.203", = ["derive"] }
= "3.10.1"
[]
= "2.5.2"
[]
# The `serde` feature makes some types serializable,
# like the `EnvOpenOptions` struct.
= ["serde", "serde-bincode", "serde-json"]
= ["bitflags/serde", "dep:serde"]
# The #MDB_NOTLS flag is automatically set on Env opening,
# RoTxn and RoCursors implements the Send trait. This allows the
# user to move RoTxns and RoCursors between threads as read transactions
# will no more use thread local storage and will tie reader locktable
# slots to #MDB_txn objects instead of to threads.
#
# According to the LMDB documentation, when this feature is not enabled:
# A thread can only use one transaction at a time, plus any child
# transactions. Each transaction belongs to one thread. [...]
# The #MDB_NOTLS flag changes this for read-only transactions.
#
# And a #MDB_BAD_RSLOT error will be thrown when multiple read
# transactions exists on the same thread
= []
# Enable the serde en/decoders for bincode, serde_json, or rmp_serde
= ["heed-types/serde-bincode"]
= ["heed-types/serde-json"]
= ["heed-types/serde-rmp"]
# serde_json features
= ["heed-types/preserve_order"]
= ["heed-types/arbitrary_precision"]
= ["heed-types/raw_value"]
= ["heed-types/unbounded_depth"]
# Whether to tell LMDB to use POSIX semaphores during compilation
# (instead of the default, which are System V semaphores).
# POSIX semaphores are required for Apple's App Sandbox on iOS & macOS,
# and are possibly faster and more appropriate for single-process use.
# There are tradeoffs for both POSIX and SysV semaphores; which you
# should look into before enabling this feature. Also, see here:
# <https://github.com/LMDB/lmdb/blob/3947014aed7ffe39a79991fa7fb5b234da47ad1a/libraries/liblmdb/lmdb.h#L46-L69>
= ["lmdb-master-sys/posix-sem"]
# These features configure the MDB_IDL_LOGN macro, which determines
# the size of the free and dirty page lists (and thus the amount of memory
# allocated when opening an LMDB environment in read-write mode).
#
# Each feature defines MDB_IDL_LOGN as the value in the name of the feature.
# That means these features are mutually exclusive, and you must not specify
# more than one at the same time (or the crate will fail to compile).
#
# For more information on the motivation for these features (and their effect),
# see https://github.com/mozilla/lmdb/pull/2.
= ["lmdb-master-sys/mdb_idl_logn_8"]
= ["lmdb-master-sys/mdb_idl_logn_9"]
= ["lmdb-master-sys/mdb_idl_logn_10"]
= ["lmdb-master-sys/mdb_idl_logn_11"]
= ["lmdb-master-sys/mdb_idl_logn_12"]
= ["lmdb-master-sys/mdb_idl_logn_13"]
= ["lmdb-master-sys/mdb_idl_logn_14"]
= ["lmdb-master-sys/mdb_idl_logn_15"]
= ["lmdb-master-sys/mdb_idl_logn_16"]
# Setting this enables you to use keys longer than 511 bytes. The exact limit
# is computed by LMDB at compile time. You can find the exact value by calling
# Env::max_key_size(). This value varies by architecture.
#
# Example max key sizes:
# - Apple M1 (ARM64): 8126 bytes
# - Apple Intel (AMD64): 1982 bytes
# - Linux Intel (AMD64): 1982 bytes
#
# Setting this also enables you to use values larger than 511 bytes when using
# a Database with the DatabaseFlags::DUP_SORT flag.
#
# This builds LMDB with the -DMDB_MAXKEYSIZE=0 option.
#
# Note: If you are moving database files between architectures then your longest
# stored key must fit within the smallest limit of all architectures used. For
# example, if you are moving databases between Apple M1 and Apple Intel
# computers then you need to keep your keys within the smaller 1982 byte limit.
= ["lmdb-master-sys/longer-keys"]
[[]]
= "rmp-serde"
= ["serde-rmp"]