13 个版本

0.20.0 2024年4月26日
0.20.0-alpha.92023年11月27日
0.20.0-alpha.42023年8月23日
0.20.0-alpha.32023年7月13日
0.7.0 2020年4月26日

#1583数据库接口

Download history • Rust 包仓库 16341/week @ 2024-05-05 • Rust 包仓库 19526/week @ 2024-05-12 • Rust 包仓库 18729/week @ 2024-05-19 • Rust 包仓库 20205/week @ 2024-05-26 • Rust 包仓库 22940/week @ 2024-06-02 • Rust 包仓库 17601/week @ 2024-06-09 • Rust 包仓库 21336/week @ 2024-06-16 • Rust 包仓库 23953/week @ 2024-06-23 • Rust 包仓库 18876/week @ 2024-06-30 • Rust 包仓库 16140/week @ 2024-07-07 • Rust 包仓库 12885/week @ 2024-07-14 • Rust 包仓库 12823/week @ 2024-07-21 • Rust 包仓库 11563/week @ 2024-07-28 • Rust 包仓库 9951/week @ 2024-08-04 • Rust 包仓库 10251/week @ 2024-08-11 • Rust 包仓库 12191/week @ 2024-08-18 • Rust 包仓库

44,618 每月下载量
用于 17 个 Crates(直接使用 3 个)

MIT 许可证

8KB

heed

License Crates.io Docs dependency status Build

一个以 Rust 为中心的、具有最小开销的 LMDB 抽象。该库允许在 LMDB 中存储各种 Rust 类型,并扩展支持到与 Serde 兼容的类型。

简单示例用法

以下是如何以安全和 ACID 方式存储和读取 LMDB 中的条目的示例。有关用法示例,请参阅 heed/examples/。要了解更多高级用法技术,请参阅我们的 食谱

use std::fs;
use std::path::Path;
use heed::{EnvOpenOptions, Database};
use heed::types::*;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let env = unsafe { EnvOpenOptions::new().open("my-first-db")? };

    // We open the default unnamed database
    let mut wtxn = env.write_txn()?;
    let db: Database<Str, U32<byteorder::NativeEndian>> = env.create_database(&mut wtxn, None)?;

    // We open a write transaction
    db.put(&mut wtxn, "seven", &7)?;
    db.put(&mut wtxn, "zero", &0)?;
    db.put(&mut wtxn, "five", &5)?;
    db.put(&mut wtxn, "three", &3)?;
    wtxn.commit()?;

    // We open a read transaction to check if those values are now available
    let mut rtxn = env.read_txn()?;

    let ret = db.get(&rtxn, "zero")?;
    assert_eq!(ret, Some(0));

    let ret = db.get(&rtxn, "five")?;
    assert_eq!(ret, Some(5));

    Ok(())
}

从源码构建

您可以使用以下命令克隆存储库

git clone --recursive https://github.com/meilisearch/heed.git
cd heed
cargo build

但是,如果您已经克隆了它并且忘记初始化子模块,请执行以下命令

git submodule update --init

无运行时依赖项