content: [package]
  name = "heed"
  version = "0.22.0"
  authors = ["Kerollmops <renault.cle@gmail.com>"]
  description = "A fully typed LMDB (mdb.master) wrapper with minimum overhead"
  license = "MIT"
  repository = "https://github.com/Kerollmops/heed"
  keywords = ["lmdb", "database", "storage", "typed"]
  categories = ["database", "data-structures"]
  readme = "../README.md"
  edition = "2021"
  
  [dependencies]
  bitflags = { version = "2.9.4", features = ["serde"] }
  byteorder = { version = "1.5.0", default-features = false }
  heed-traits = { version = "0.20.0", path = "../heed-traits" }
  heed-types = { version = "0.21.0", default-features = false, path = "../heed-types" }
  libc = "0.2.175"
  lmdb-master-sys = { version = "0.2.5", path = "../lmdb-master-sys" }
  once_cell = "1.21.3"
  page_size = "0.6.0"
  serde = { version = "1.0.223", features = ["derive"], optional = true }
  synchronoise = "1.0.1"
  
  [dev-dependencies]
  memchr = "2.7.5"
  serde = { version = "1.0.223", features = ["derive"] }
  tempfile = "3.22.0"
  
  [target.'cfg(windows)'.dependencies]
  url = "2.5.7"
  
  [features]
  # The `serde` feature makes some types serializable,
  # like the `EnvOpenOptions` struct.
  default = ["serde", "serde-bincode", "serde-json"]
  serde = ["bitflags/serde", "dep:serde"]
  
  # Enable the serde en/decoders for bincode, serde_json, or rmp_serde
  serde-bincode = ["heed-types/serde-bincode"]
  serde-json = ["heed-types/serde-json"]
  serde-rmp = ["heed-types/serde-rmp"]
  
  # serde_json features
  preserve_order = ["heed-types/preserve_order"]
  arbitrary_precision = ["heed-types/arbitrary_precision"]
  raw_value = ["heed-types/raw_value"]
  unbounded_depth = ["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>
  posix-sem = ["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.
  mdb_idl_logn_8 = ["lmdb-master-sys/mdb_idl_logn_8"]
  mdb_idl_logn_9 = ["lmdb-master-sys/mdb_idl_logn_9"]
  mdb_idl_logn_10 = ["lmdb-master-sys/mdb_idl_logn_10"]
  mdb_idl_logn_11 = ["lmdb-master-sys/mdb_idl_logn_11"]
  mdb_idl_logn_12 = ["lmdb-master-sys/mdb_idl_logn_12"]
  mdb_idl_logn_13 = ["lmdb-master-sys/mdb_idl_logn_13"]
  mdb_idl_logn_14 = ["lmdb-master-sys/mdb_idl_logn_14"]
  mdb_idl_logn_15 = ["lmdb-master-sys/mdb_idl_logn_15"]
  mdb_idl_logn_16 = ["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.
  longer-keys = ["lmdb-master-sys/longer-keys"]
  
  # Enable a better Valgrind support. This builds LMDB with the -DUSE_VALGRIND=1 option.
  #
  # You have to install the RPM valgrind-devel which contains memcheck.h.
  #
  # More information can be found at:
  # <https://github.com/LMDB/lmdb/blob/f20e41de09d97e4461946b7e26ec831d0c24fac7/libraries/liblmdb/mdb.c#L205-L218>
  use-valgrind = ["lmdb-master-sys/use-valgrind"]
  
  [[example]]
  name = "all-types"
  
  [[example]]
  name = "clear-database"
  
  [[example]]
  name = "cursor-append"
  
  [[example]]
  name = "custom-comparator"
  
  [[example]]
  name = "custom-dupsort-comparator"
  
  [[example]]
  name = "multi-env"
  
  [[example]]
  name = "nested"
  
  [[example]]
  name = "prev-snapshot"
  
  [[example]]
  name = "rmp-serde"
  required-features = ["serde-rmp"]
  