#sea-orm #session #back-end #session-store #implemented #migration #migrator

async-sea-orm-session

基于 sea-orm 实现的 async-session 后端

7 个不稳定版本

0.3.0 2023 年 3 月 8 日
0.2.0 2023 年 1 月 20 日
0.1.2 2022 年 9 月 20 日
0.1.1 2022 年 7 月 8 日

#1500数据库接口

Download history 3/week @ 2024-03-09 1/week @ 2024-03-16 7/week @ 2024-03-30 1/week @ 2024-04-06

149 每月下载量

MIT/Apache

15KB
137

async-sea-orm-session

Latest version crates.io downloads Build Status Apache/MIT2.0 License

使用 sea-orm 实现的 async-session 后端,深受 async-sqlx-session 影响。

更多信息可以在 crate 文档 中找到。

基本用法

以下示例中,我们创建了一个实现 async-sessionDatabaseSessionStore

use async_sea_orm_session::migration::Migrator;
use async_sea_orm_session::DatabaseSessionStore;
use sea_orm::{Database, DatabaseConnection};
use sea_orm_migration::MigratorTrait;

#[tokio::main]
async fn main() -> Result<(), sea_orm::DbErr> {
    // Create a sea_orm::DatabaseConnection in the usual way.
    let db: DatabaseConnection =
        Database::connect("protocol://username:password@host/database").await?;
   
    // Run the async_sea_orm_session migration to create the session table.
    Migrator::up(&db, None).await?;
    
    // Finally create a DatabaseSessionStore that implements SessionStore.
    let store = DatabaseSessionStore::new(db);
    Ok(())
}

示例

在仓库的 examples 目录中提供了完整的示例。欢迎贡献展示不同设置的示例!

  • axum-example

此示例将 axum 网络应用框架与 async-sea-orm-session(用于会话存储)和 tower-cookies(用于 cookie 管理)结合使用。

默认情况下,此示例使用内存中的 sqlite 数据库运行。您也可以从 axum-example 子目录中运行以下命令以使用 postgres 数据库:

DATABASE_URI=postgres://username:password@host/database cargo run --features postgres

许可证

以下任一许可证下授权:

任选其一。

依赖关系

~9–18MB
~261K SLoC