1个不稳定版本

使用旧的Rust 2015

0.1.0 2016年8月1日

#3#exar-db


4 crate 使用

AGPL-3.0

105KB
2K SLoC

Exar DB的核心

支持流处理的事件存储,它使用基于平面文件的集合。

Crates.io

文档


lib.rs:

Exar DB

Exar DB是一个支持流处理的事件存储,它为每个事件集合使用平面文件

数据库初始化

extern crate exar;

use exar::*;

let config = DatabaseConfig::default();
let mut db = Database::new(config);

发布事件

extern crate exar;

use exar::*;

let config = DatabaseConfig::default();
let mut db = Database::new(config);

let collection_name = "test";
let connection = db.connect(collection_name).unwrap();

match connection.publish(Event::new("payload", vec!["tag1", "tag2"])) {
    Ok(event_id) => println!("Published event with ID: {}", event_id),
    Err(err) => panic!("Unable to publish event: {}", err)
};

查询事件

extern crate exar;

use exar::*;

let config = DatabaseConfig::default();
let mut db = Database::new(config);

let collection_name = "test";
let connection = db.connect(collection_name).unwrap();

let query = Query::live().offset(0).limit(10).by_tag("tag1");
let event_stream = connection.subscribe(query).unwrap();
for event in event_stream {
    println!("Received event: {}", event);
}

依赖项

~1.1–1.7MB
~29K SLoC