Skip to content

Repository files navigation

async-sea-orm-session

Latest versioncrates.io downloadsBuild StatusApache/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;#[tokio::main]asyncfnmain() -> 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

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

License

Licensed under either of

at your option.

About

An async-session backend using sea-orm.

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages