feat(wfe-sqlite): add SQLite persistence provider
SqlitePersistenceProvider using sqlx with in-memory and file-based SQLite. Schema with 6 tables, 8 indexes, created via ensure_store_exists. Transactions for multi-table operations. Passes persistence_suite tests.
This commit is contained in:
24
wfe-sqlite/Cargo.toml
Normal file
24
wfe-sqlite/Cargo.toml
Normal file
@@ -0,0 +1,24 @@
|
||||
[package]
|
||||
name = "wfe-sqlite"
|
||||
version.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
description = "SQLite persistence provider for WFE"
|
||||
|
||||
[dependencies]
|
||||
wfe-core = { workspace = true }
|
||||
sqlx = { workspace = true }
|
||||
tokio = { workspace = true }
|
||||
serde = { workspace = true }
|
||||
serde_json = { workspace = true }
|
||||
async-trait = { workspace = true }
|
||||
uuid = { workspace = true }
|
||||
chrono = { workspace = true }
|
||||
thiserror = { workspace = true }
|
||||
tracing = { workspace = true }
|
||||
|
||||
[dev-dependencies]
|
||||
wfe-core = { workspace = true, features = ["test-support"] }
|
||||
pretty_assertions = { workspace = true }
|
||||
rstest = { workspace = true }
|
||||
tokio = { workspace = true, features = ["test-util"] }
|
||||
1120
wfe-sqlite/src/lib.rs
Normal file
1120
wfe-sqlite/src/lib.rs
Normal file
File diff suppressed because it is too large
Load Diff
9
wfe-sqlite/tests/persistence.rs
Normal file
9
wfe-sqlite/tests/persistence.rs
Normal file
@@ -0,0 +1,9 @@
|
||||
use wfe_core::persistence_suite;
|
||||
|
||||
async fn make_provider() -> wfe_sqlite::SqlitePersistenceProvider {
|
||||
wfe_sqlite::SqlitePersistenceProvider::new(":memory:")
|
||||
.await
|
||||
.unwrap()
|
||||
}
|
||||
|
||||
persistence_suite!(|| async { make_provider().await });
|
||||
Reference in New Issue
Block a user