mdbx

rust wrapper for libmdbx

use example

```

![allow(nonuppercase_globals)]

use anyhow::Result; use lazystatic::lazystatic; use mdbx::{db, env::Env, Db};

lazystatic! { pub static ref MDBX: Env = { let mut dir = std::env::currentexe().unwrap(); dir.pop(); dir.push("test"); println!("mdbx file path {}", dir.display()); dir.try_into().unwrap() }; }

Db!(MDBX, UserName);

// mdbx db flag list link Db!(MDBX, Tag, db::Flag::MDBX_DUPSORT);

fn main() -> Result<()> { unsafe { println!( "mdbx version https://github.com/erthink/libmdbx/releases/tag/v{}.{}.{}", mdbx::mdbxversion.major, mdbx::mdbxversion.minor, mdbx::mdbxversion.release ); } let t = std::thread::spawn(|| { let tx = &MDBX.w()?; let username = UserName & tx; username.set(&[3], &[4])?; dbg!("thread", username.get(&[2])?); dbg!("thread", user_name.get(&[3])?); Ok::<(), anyhow::Error>(()) });

{
    let tx = &MDBX.w()?;
    let user_name = UserName & tx;
    user_name.set(&[2], &[5])?;
    dbg!("main", user_name.get(&[2])?);
    dbg!("main", user_name.get(&[3])?);
    let tag = Tag & tx;
    tag.set(&[1], &[2])?;
    tag.set(&[1], &[3])?;
    dbg!(tag.get(&[1])?);
}

t.join().unwrap()?;

Ok(())

} ```

output as below

mdbx file path /root/git/mdbx/target/debug/examples/test mdbx version https://github.com/erthink/libmdbx/releases/tag/v0.11.1

关于

本项目隶属于人民网络(rmw.link) 代码计划。

人民网络