diff --git a/Cargo.lock b/Cargo.lock index 0b55f08..6c529d5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -197,6 +197,15 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + [[package]] name = "bitflags" version = "2.9.2" @@ -965,11 +974,13 @@ dependencies = [ name = "libdbstorage" version = "0.1.0" dependencies = [ + "bincode", "libcrypto", "redb", "serde", "serde_json", "thiserror", + "tokio", ] [[package]] diff --git a/crates/libdbstorage/Cargo.toml b/crates/libdbstorage/Cargo.toml index 3686d18..29395be 100644 --- a/crates/libdbstorage/Cargo.toml +++ b/crates/libdbstorage/Cargo.toml @@ -10,4 +10,6 @@ serde_json = { workspace = true } thiserror = { workspace = true } # Local Crate Dependencies -libcrypto = { path = "../libcrypto" } \ No newline at end of file +libcrypto = { path = "../libcrypto" } +tokio = { version = "1", features = ["full"] } +bincode = "1.3.3" \ No newline at end of file diff --git a/crates/libdbstorage/src/lib.rs b/crates/libdbstorage/src/lib.rs index 315888d..cf668bb 100644 --- a/crates/libdbstorage/src/lib.rs +++ b/crates/libdbstorage/src/lib.rs @@ -8,13 +8,11 @@ use libcrypto::CryptoFactory; // Correct import use redb::{Database, TableDefinition}; use serde::{Deserialize, Serialize}; -pub use crate::error::DBError; // Re-export for users of this crate +pub mod error; // Declare the error module +pub use error::DBError; // Re-export for users of this crate -// Declare modules -pub mod storage_basic; -pub mod storage_hset; -pub mod storage_lists; -pub mod storage_extra; +// Declare storage module +pub mod storage; // Table definitions for different Redis data types const TYPES_TABLE: TableDefinition<&str, &str> = TableDefinition::new("types"); diff --git a/crates/libdbstorage/src/storage/mod.rs b/crates/libdbstorage/src/storage/mod.rs new file mode 100644 index 0000000..da3e233 --- /dev/null +++ b/crates/libdbstorage/src/storage/mod.rs @@ -0,0 +1,4 @@ +pub mod storage_basic; +pub mod storage_hset; +pub mod storage_lists; +pub mod storage_extra; \ No newline at end of file diff --git a/crates/libdbstorage/src/storage/storage_basic.rs b/crates/libdbstorage/src/storage/storage_basic.rs index a394cb7..263f544 100644 --- a/crates/libdbstorage/src/storage/storage_basic.rs +++ b/crates/libdbstorage/src/storage/storage_basic.rs @@ -1,6 +1,6 @@ use redb::{ReadableTable}; use crate::error::DBError; -use super::*; +use crate::{Storage, TYPES_TABLE, STRINGS_TABLE, HASHES_TABLE, LISTS_TABLE, STREAMS_META_TABLE, STREAMS_DATA_TABLE, EXPIRATION_TABLE, now_in_millis}; impl Storage { pub fn flushdb(&self) -> Result<(), DBError> { diff --git a/crates/libdbstorage/src/storage/storage_extra.rs b/crates/libdbstorage/src/storage/storage_extra.rs index cb8aa25..5b3bb4e 100644 --- a/crates/libdbstorage/src/storage/storage_extra.rs +++ b/crates/libdbstorage/src/storage/storage_extra.rs @@ -1,6 +1,6 @@ use redb::{ReadableTable}; use crate::error::DBError; -use super::*; +use crate::{Storage, TYPES_TABLE, STRINGS_TABLE, EXPIRATION_TABLE, now_in_millis}; impl Storage { // ✅ ENCRYPTION APPLIED: Values are decrypted after retrieval diff --git a/crates/libdbstorage/src/storage/storage_hset.rs b/crates/libdbstorage/src/storage/storage_hset.rs index b9ae3c4..c76a784 100644 --- a/crates/libdbstorage/src/storage/storage_hset.rs +++ b/crates/libdbstorage/src/storage/storage_hset.rs @@ -1,6 +1,6 @@ use redb::{ReadableTable}; use crate::error::DBError; -use super::*; +use crate::{Storage, TYPES_TABLE, HASHES_TABLE}; impl Storage { // ✅ ENCRYPTION APPLIED: Values are encrypted before storage diff --git a/crates/libdbstorage/src/storage/storage_lists.rs b/crates/libdbstorage/src/storage/storage_lists.rs index 6dfd381..968d2c4 100644 --- a/crates/libdbstorage/src/storage/storage_lists.rs +++ b/crates/libdbstorage/src/storage/storage_lists.rs @@ -1,6 +1,6 @@ use redb::{ReadableTable}; use crate::error::DBError; -use super::*; +use crate::{Storage, TYPES_TABLE, LISTS_TABLE}; impl Storage { // ✅ ENCRYPTION APPLIED: Elements are encrypted before storage