13 个版本

0.2.0 2021年11月6日
0.1.3 2021年3月6日
0.1.2 2020年7月4日
0.1.1 2019年8月29日
0.0.1 2016年11月26日

数据结构 中排名第630

Download history • Rust 包仓库 44/week @ 2024-03-11 • Rust 包仓库 38/week @ 2024-03-18 • Rust 包仓库 45/week @ 2024-03-25 • Rust 包仓库 97/week @ 2024-04-01 • Rust 包仓库 38/week @ 2024-04-08 • Rust 包仓库 49/week @ 2024-04-15 • Rust 包仓库 49/week @ 2024-04-22 • Rust 包仓库 42/week @ 2024-04-29 • Rust 包仓库 38/week @ 2024-05-06 • Rust 包仓库 41/week @ 2024-05-13 • Rust 包仓库 44/week @ 2024-05-20 • Rust 包仓库 33/week @ 2024-05-27 • Rust 包仓库 32/week @ 2024-06-03 • Rust 包仓库 31/week @ 2024-06-10 • Rust 包仓库 34/week @ 2024-06-17 • Rust 包仓库 41/week @ 2024-06-24 • Rust 包仓库

每月下载142
3 crate 中使用

MIT 许可证

105KB
2.5K SLoC

提交日志

为Rust编写的顺序,基于磁盘的提交日志库。该库可以用于在分布式日志(如Paxos链式复制或Raft)之上构建各种高级分布式抽象。

Crates.io Docs.rs Travis

文档

用法

首先,将以下内容添加到您的 Cargo.toml

[dependencies]
commitlog = "0.1"
extern crate commitlog;

use commitlog::*;

fn main() {
    // open a directory called 'log' for segment and index storage
    let opts = LogOptions::new("log");
    let mut log = CommitLog::new(opts).unwrap();

    // append to the log
    log.append("hello world").unwrap(); // offset 0
    log.append("second message").unwrap(); // offset 1

    // read the messages
    let messages = log.read(0, ReadLimit::default()).unwrap();
    for msg in messages.iter() {
        println!("{} - {}", msg.offset(), String::from_utf8_lossy(msg.payload()));
    }

    // prints:
    //    0 - hello world
    //    1 - second message
}

先有技术

依赖项

~420–750KB
~10K SLoC