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.
```rust use asyncseaormsession::migration::Migrator; use asyncseaormsession::DatabaseSessionStore; use seaorm::{Database, DatabaseConnection}; use seaorm_migration::MigratorTrait;
async fn main() -> Result<(), seaorm::DbErr> { // Create a seaorm::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:
shell
DATABASE_URI=postgres://username:password@host/database cargo run --features postgres
Licensed under either of * Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0) * MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.