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