| Crates.io | async-sea-orm-session |
| lib.rs | async-sea-orm-session |
| version | 0.4.0 |
| created_at | 2022-07-07 11:59:38.273994+00 |
| updated_at | 2025-06-21 00:06:19.601331+00 |
| description | async-session backend implemented in sea-orm |
| homepage | |
| repository | https://github.com/dcchut/async-sea-orm-session |
| max_upload_size | |
| id | 621144 |
| size | 109,068 |
An async-session backend implemented using sea-orm, heavily inspired by async-sqlx-session.
More information can be found in the crate documentation.
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;
#[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(())
}
There are full examples in the examples directory of the repository. Feel free to contribute examples showing
different setups!
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.