1个不稳定版本
使用旧的Rust 2015
0.1.0 | 2016年8月1日 |
---|
#3 在 #exar-db 中
被 4 crate 使用
105KB
2K SLoC
Exar DB的核心
支持流处理的事件存储,它使用基于平面文件的集合。
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