rust wrapper for libmdbx
```
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) 代码计划。