21 个稳定版本 (4 个主要版本)
4.0.0 | 2024年6月7日 |
---|---|
3.0.0 | 2023年4月21日 |
2.4.0 | 2023年4月17日 |
2.3.3 | 2022年1月24日 |
0.1.0 | 2019年8月22日 |
189 在 数据库接口 中
每月下载量414次
705KB
4K SLoC
Seshat
Seshat是Matrix事件的数据库和索引器。
其主要用途是作为Matrix客户端的全文搜索后端。
JavaScript绑定
Seshat提供JavaScript绑定,可在seshat-node子目录中找到。
用法
Seshat有两种操作模式:实时添加事件
use seshat::{Database, Event, Profile};
use tempfile::tempdir;
let tmpdir = tempdir().unwrap();
let mut db = Database::new(tmpdir.path()).unwrap();
/// Method to call for every live event that gets received during a sync.
fn add_live_event(event: Event, profile: Profile, database: &Database) {
database.add_event(event, profile);
}
/// Method to call on every successful sync after live events were added.
fn on_sync(database: &mut Database) {
database.commit().unwrap();
}
另一种模式是使用/room/{room_id}/messages
Matrix API端点从房间历史中添加事件。此方法支持存储检查点,这些检查点会记住从/room/{room_id}/messages
API获取事件的参数
database.add_historic_events(events, old_checkpoint, new_checkpoint)?;
一旦添加了事件,就可以进行搜索
let result = database.search("test", &SearchConfig::new()).unwrap();
开发
Seshat使用标准的cargo命令build
和test
。
您可以先安装pre-commit,然后执行pre-commit install
以确保在提交时对您的作品进行代码审查。
依赖项
~55MB
~888K SLoC