2个版本

0.1.0-beta.22022年5月23日
0.1.0-beta.12022年5月12日

#2312数据库接口

Apache-2.0

155KB
3K SLoC

matrix-sdk的SQL状态存储

Build Status Code Coverage License Docs - Main Version

这个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

必须启用rustlsnative-tls中的 exactly one。至少必须启用postgressqlite中的一个。

最低支持的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文件以获取详细信息

鸣谢

贡献者

DarkKirb
Charlotte

依赖

~13–33MB
~553K SLoC