27 个版本
使用旧版 Rust 2015
0.8.0 | 2022年6月6日 |
---|---|
0.7.1 | 2021年12月17日 |
0.7.0 | 2021年10月26日 |
0.6.0 | 2019年11月16日 |
0.0.9 | 2018年3月27日 |
#1118 在 数据库接口
1,227 每月下载量
被 10 个 Crates 使用(直接使用 7 个)
145KB
2K SLoC
notmuch-rs
这不过是 notmuch C API 的一个包装器。
构建
notmuch-rs 需要您的系统上安装 libnotmuch 开发文件。
使用
将以下内容添加到您的 Cargo.toml
[dependencies]
notmuch = "*"
并将以下内容添加到您的 crate 根目录
extern crate notmuch;
示例
extern crate notmuch;
fn main() {
let mut mail_path = std::env::home_dir().unwrap();
mail_path.push(".mail");
let mut config_path = std::env::home_dir().unwrap();
config_path.push(".config/custom-notmuch-config-path");
let db = notmuch::Database::open_with_config(
&mail_path,
notmuch::DatabaseMode::ReadOnly,
&config_path,
None,
)
.unwrap();
let query = db.create_query("").unwrap();
let mut threads = query.search_threads().unwrap();
for thread in threads {
println!("thread {:?} {:?}", thread.subject(), thread.authors());
}
}
并发
Notmuch 不保证线程安全。它似乎没有使用任何线程局部变量,但我没有发现任何锁。因此,在我看来,它不是线程安全的。因此,所有指针都通过 Rc
内部跟踪。
致谢
notmuch-rs 是从以下项目开始的:
- https://github.com/Stebalien/notmuch-sys/blob/master/src/lib.rs
- https://github.com/cmhamill/rust-notmuch
欢迎任何贡献!
依赖项
~2MB
~43K SLoC