feat: Add optional redb feature flag for database support

This commit is contained in:
thesimplekid (aider)
2025-03-24 22:28:54 +00:00
committed by thesimplekid
parent 9b87a65940
commit 7a9faec984
3 changed files with 15 additions and 4 deletions

View File

@@ -123,6 +123,8 @@ jobs:
-p cdk-payment-processor, -p cdk-payment-processor,
--bin cdk-cli, --bin cdk-cli,
--bin cdk-cli --features sqlcipher, --bin cdk-cli --features sqlcipher,
--bin cdk-cli --features redb,
--bin cdk-cli --features "sqlcipher redb",
--bin cdk-mintd, --bin cdk-mintd,
--bin cdk-mintd --features redis, --bin cdk-mintd --features redis,
--bin cdk-mintd --features redb, --bin cdk-mintd --features redb,

View File

@@ -11,12 +11,14 @@ rust-version.workspace = true
[features] [features]
sqlcipher = ["cdk-sqlite/sqlcipher"] sqlcipher = ["cdk-sqlite/sqlcipher"]
# MSRV is not tracked with redb enabled
redb = ["dep:cdk-redb"]
[dependencies] [dependencies]
anyhow.workspace = true anyhow.workspace = true
bip39.workspace = true bip39.workspace = true
cdk = { workspace = true, default-features = false, features = ["wallet", "auth"]} cdk = { workspace = true, default-features = false, features = ["wallet", "auth"]}
cdk-redb = { workspace = true, features = ["wallet"] } cdk-redb = { workspace = true, features = ["wallet"], optional = true }
cdk-sqlite = { workspace = true, features = ["wallet"] } cdk-sqlite = { workspace = true, features = ["wallet"] }
clap.workspace = true clap.workspace = true
serde.workspace = true serde.workspace = true

View File

@@ -9,6 +9,7 @@ use bip39::Mnemonic;
use cdk::cdk_database; use cdk::cdk_database;
use cdk::cdk_database::WalletDatabase; use cdk::cdk_database::WalletDatabase;
use cdk::wallet::{HttpClient, MultiMintWallet, Wallet, WalletBuilder}; use cdk::wallet::{HttpClient, MultiMintWallet, Wallet, WalletBuilder};
#[cfg(feature = "redb")]
use cdk_redb::WalletRedbDatabase; use cdk_redb::WalletRedbDatabase;
use cdk_sqlite::WalletSqliteDatabase; use cdk_sqlite::WalletSqliteDatabase;
use clap::{Parser, Subcommand}; use clap::{Parser, Subcommand};
@@ -132,9 +133,15 @@ async fn main() -> Result<()> {
Arc::new(sql) Arc::new(sql)
} }
"redb" => { "redb" => {
let redb_path = work_dir.join("cdk-cli.redb"); #[cfg(feature = "redb")]
{
Arc::new(WalletRedbDatabase::new(&redb_path)?) let redb_path = work_dir.join("cdk-cli.redb");
Arc::new(WalletRedbDatabase::new(&redb_path)?)
}
#[cfg(not(feature = "redb"))]
{
bail!("redb feature not enabled");
}
} }
_ => bail!("Unknown DB engine"), _ => bail!("Unknown DB engine"),
}; };