2个版本
| 0.1.0-beta.2 | 2022年5月23日 |
|---|---|
| 0.1.0-beta.1 | 2022年5月12日 |
#2312 在 数据库接口
155KB
3K SLoC
matrix-sdk的SQL状态存储
这个crate允许您将您的postgres/sqlite数据库用作matrix-sdk的状态和加密存储。
Crate特性
rustls:启用sqlx和matrix-sdk中的rustls TLS后端native-tls:启用sqlx和matrix-sdk中的native-tls TLS后端(默认启用)postgres:启用对postgres数据库的支持(默认启用)sqlite:启用对sqlite数据库的支持e2e-encryption启用CryptoStore
必须启用rustls和native-tls中的 exactly one。至少必须启用postgres或sqlite中的一个。
最低支持的Rust版本
当前MSRV是1.60.0。
增加MSRV是一个破坏性更改。
用法
此crate与您的现有SQLx数据库池集成。
let sql_pool: Arc<sqlx::Pool<DB>> = /* ... */;
// Create the store config
let store_config = matrix_sdk_sql::store_config(sql_pool, Some(std::env::var("MYAPP_SECRET_KEY")?)).await?;
之后,您可以将其传递给客户端构建器,如下所示
let client_builder = Client::builder()
/* ... */
.store_config(store_config)
加密存储
启用e2e-encryption功能启用cryptostore功能。为了保护加密会话信息,表的内容将以与matrix-sdk-sled相同的方式进行加密。
在使用cryptostore功能之前,您需要解锁cryptostore
let mut state_store = /* as above */;
state_store.unlock_with_passphrase(std::env::var("MYAPP_SECRET_KEY")?).await?;
如果您使用的是store_config函数,存储将为您自动解锁。
作者
许可
此项目采用Apache-2.0许可证 - 请参阅LICENSE.md文件以获取详细信息
鸣谢
贡献者
|
Charlotte |
依赖
~13–33MB
~553K SLoC