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数据库接口

Download history 311/week @ 2024-03-13 248/week @ 2024-03-20 396/week @ 2024-03-27 547/week @ 2024-04-03 413/week @ 2024-04-10 409/week @ 2024-04-17 226/week @ 2024-04-24 200/week @ 2024-05-01 230/week @ 2024-05-08 253/week @ 2024-05-15 291/week @ 2024-05-22 276/week @ 2024-05-29 245/week @ 2024-06-05 321/week @ 2024-06-12 334/week @ 2024-06-19 289/week @ 2024-06-26

1,227 每月下载量
10 Crates 使用(直接使用 7 个)

GPL-3.0+

145KB
2K SLoC

notmuch-rs

这不过是 notmuch C API 的一个包装器。

Build Status Crate version Download statistics License Join the chat at https://gitter.im/notmuch-rs/Lobby

构建

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 是从以下项目开始的:

欢迎任何贡献!

依赖项

~2MB
~43K SLoC