7 unstable releases

0.3.0 Mar 8, 2023
0.2.0 Jan 20, 2023
0.1.2 Sep 20, 2022
0.1.1 Jul 8, 2022

#7 in #migrator

Download history 10/week @ 2024-02-19 4/week @ 2024-03-11 8/week @ 2024-04-01

149 downloads per month


137 lines


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

An async-session backend implemented using sea-orm, heavily inspired by async-sqlx-session.

More information can be found in the crate documentation.

Basic usage

In the following example we create a DatabaseSessionStore, which implements the SessionStore trait from async-session.

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

async fn main() -> Result<(), sea_orm::DbErr> {
    // Create a sea_orm::DatabaseConnection in the usual way.
    let db: DatabaseConnection =
    // 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);


There are full examples in the examples directory of the repository. Feel free to contribute examples showing different setups!

  • axum-example

This example combines the axum web application framework with async-sea-orm-session for session storage and tower-cookies for cookie management.

By default, this example runs using an in-memory sqlite database. The example can also be run using a postgres database by running the following from the axum-example subdirectory:

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


Licensed under either of

at your option.


~248K SLoC