diff --git a/Cargo.lock b/Cargo.lock index 9ce967b..dab6cf7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -769,18 +769,6 @@ dependencies = [ "core2", ] -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] - [[package]] name = "blade-graphics" version = "0.7.0" @@ -900,28 +888,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e79769241dcd44edf79a732545e8b5cec84c247ac060f5252cd51885d093a8fc" -[[package]] -name = "bson" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3f109694c4f45353972af96bf97d8a057f82e2d6e496457f4d135b9867a518c" -dependencies = [ - "ahash", - "base64", - "bitvec", - "getrandom 0.3.4", - "hex", - "indexmap", - "js-sys", - "rand 0.9.2", - "serde", - "serde_bytes", - "simdutf8", - "thiserror 2.0.18", - "time", - "uuid", -] - [[package]] name = "bstr" version = "1.12.1" @@ -1791,15 +1757,6 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26bf8fc351c5ed29b5c2f0cbbac1b209b74f60ecd62e675a998df72c49af5204" -[[package]] -name = "deranged" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" -dependencies = [ - "powerfmt", -] - [[package]] name = "derive_more" version = "0.99.20" @@ -4952,12 +4909,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - [[package]] name = "num-derive" version = "0.4.2" @@ -5862,12 +5813,6 @@ dependencies = [ "zerovec", ] -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - [[package]] name = "ppv-lite86" version = "0.2.21" @@ -6090,12 +6035,6 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - [[package]] name = "rand" version = "0.8.5" @@ -6272,16 +6211,6 @@ dependencies = [ "font-types", ] -[[package]] -name = "redb" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae323eb086579a3769daa2c753bb96deb95993c534711e0dbe881b5192906a06" -dependencies = [ - "libc", - "uuid", -] - [[package]] name = "redox_syscall" version = "0.2.16" @@ -6871,16 +6800,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde_bytes" -version = "0.11.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" -dependencies = [ - "serde", - "serde_core", -] - [[package]] name = "serde_core" version = "1.0.228" @@ -7046,12 +6965,6 @@ dependencies = [ "quote", ] -[[package]] -name = "simdutf8" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" - [[package]] name = "simplecss" version = "0.2.2" @@ -7326,10 +7239,8 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" name = "store" version = "0.1.0" dependencies = [ - "bson", "futures", "parking_lot", - "redb", "secrecy", "serde", "tokio", @@ -7744,37 +7655,6 @@ dependencies = [ "zune-jpeg 0.4.21", ] -[[package]] -name = "time" -version = "0.3.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9e442fc33d7fdb45aa9bfeb312c095964abdf596f7567261062b2a7107aaabd" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde_core", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b36ee98fd31ec7426d599183e8fe26932a8dc1fb76ddb6214d05493377d34ca" - -[[package]] -name = "time-macros" -version = "0.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e552d1249bf61ac2a52db88179fd0673def1e1ad8243a00d9ec9ed71fee3dd" -dependencies = [ - "num-conv", - "time-core", -] - [[package]] name = "tiny-skia" version = "0.11.4" @@ -9718,15 +9598,6 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - [[package]] name = "x11-dl" version = "2.21.0" diff --git a/store/Cargo.toml b/store/Cargo.toml index 7dc01d4..3b6c592 100644 --- a/store/Cargo.toml +++ b/store/Cargo.toml @@ -4,10 +4,8 @@ version = "0.1.0" edition = "2024" [dependencies] -bson = { version = "3.1.0", features = ["serde"] } futures = "0.3.31" parking_lot = "0.12.5" -redb = { version = "3.1.0", features = ["uuid"] } secrecy = "0.10.3" serde = "1.0.228" tokio = { version = "1.48.0", features = ["rt"] } diff --git a/store/src/redb.rs b/store/src/redb.rs deleted file mode 100644 index 7f9ce0f..0000000 --- a/store/src/redb.rs +++ /dev/null @@ -1,225 +0,0 @@ -// use std::{ -// borrow::Borrow, -// collections::VecDeque, -// marker::PhantomData, -// path::Path, -// sync::{Arc, RwLock, atomic::AtomicBool}, -// }; -// -// use futures::task::AtomicWaker; -// use redb::{Error, Key, ReadableDatabase, TableDefinition, Value}; -// use serde::{Serialize, de::DeserializeOwned}; -// -// const USERS: TableDefinition> = TableDefinition::new("users"); -// const SERVERS: TableDefinition> = TableDefinition::new("servers"); -// const SETTINGS: TableDefinition> = TableDefinition::new("settings"); -// -// #[derive(Debug)] -// pub struct TableInner { -// db: Arc, -// } -// -// impl Clone for TableInner { -// fn clone(&self) -> Self { -// Self { -// db: Arc::clone(&self.db), -// } -// } -// } -// -// impl TableInner { -// fn new(db: Arc) -> Self { -// Self { db } -// } -// } -// -// impl TableInner { -// async fn get<'a, K: Key, V: Serialize + DeserializeOwned>( -// &self, -// table: TableDefinition<'static, K, Vec>, -// key: impl Borrow>, -// ) -> Result> { -// let db: &redb::Database = &self.db.as_ref().database; -// let db_reader = db.begin_read()?; -// let table = db_reader.open_table(table)?; -// table -// .get(key)? -// .map(|value| bson::deserialize_from_slice(&value.value())) -// .transpose() -// .map_err(|e| redb::Error::Io(std::io::Error::other(e))) -// } -// -// async fn insert< -// 'a, -// 'b, -// K: Key + Send + Sync, -// V: Serialize + DeserializeOwned + Send + Sync + 'a, -// >( -// &'b self, -// table: TableDefinition<'static, K, Vec>, -// key: impl Borrow> + Send + 'b, -// value: V, -// ) -> Result> { -// let db: &redb::Database = &self.db.as_ref().database; -// // self.db -// // .writing -// // .store(true, std::sync::atomic::Ordering::SeqCst); -// -// // let out = tokio::task::spawn_blocking(move || -> Result> -// -// let out = tokio::task::spawn_blocking(|| -> Result> { -// let db_writer = db.begin_write()?; -// let out = { -// let mut table = db_writer.open_table(table)?; -// let serialized_value = bson::serialize_to_vec(&value) -// .map_err(|e| redb::Error::Io(std::io::Error::other(e)))?; -// let previous = table.insert(key, &serialized_value)?; -// let out = previous -// .map(|value| bson::deserialize_from_slice(&value.value())) -// .transpose() -// .map_err(|e| redb::Error::Io(std::io::Error::other(e))); -// out -// }; -// db_writer.commit()?; -// out -// }) -// .await -// .expect("Task panicked"); -// -// out -// } -// } -// -// // impl Table for TableInner { -// // async fn get(&self, key: K) -> Result> {} -// // async fn insert(&self, key: K, value: V) -> Result> {} -// // async fn modify(&self, key: K, v: FnOnce(V) -> V) -> Result {} -// // async fn remove(&self, key: K) -> Result> {} -// // } -// -// #[derive(Debug)] -// pub struct Users(TableInner); -// -// impl Clone for Users { -// fn clone(&self) -> Self { -// Self(self.0.clone()) -// } -// } -// impl Users { -// const TABLE: TableDefinition<'static, uuid::Uuid, Vec> = USERS; -// } -// -// #[derive(Debug)] -// pub struct Servers(TableInner); -// impl Clone for Servers { -// fn clone(&self) -> Self { -// Self(self.0.clone()) -// } -// } -// impl Servers { -// const TABLE: TableDefinition<'static, uuid::Uuid, Vec> = SERVERS; -// } -// -// #[derive(Debug)] -// pub struct Settings(TableInner); -// impl Clone for Settings { -// fn clone(&self) -> Self { -// Self(self.0.clone()) -// } -// } -// impl Settings { -// const TABLE: TableDefinition<'static, uuid::Uuid, Vec> = SETTINGS; -// } -// -// #[derive(Debug, Clone)] -// pub struct Database { -// users: Users, -// servers: Servers, -// settings: Settings, -// handle: Arc, -// } -// -// #[derive(Debug)] -// pub struct DatabaseHandle { -// database: redb::Database, -// writing: AtomicBool, -// wakers: RwLock>, -// } -// -// #[derive(Debug)] -// pub struct DatabaseWriterGuard<'a> { -// handle: &'a DatabaseHandle, -// dropper: Arc, -// } -// -// // impl Drop for DatabaseWriterGuard<'_> { -// // fn drop(&mut self) { -// // self.handle -// // .writing -// // .store(false, std::sync::atomic::Ordering::SeqCst); -// // let is_panicking = std::thread::panicking(); -// // let Ok(writer) = self.handle.wakers.write() else { -// // if is_panicking { -// // return; -// // } else { -// // panic!("Wakers lock poisoned"); -// // } -// // } -// // if let Some(waker) = (self.handle.wakers.write()).pop() { -// // waker.wake(); -// // }; -// // // let mut wakers = self.handle.wakers.write().expect(); -// // // if let Some(waker) = self.handle.wakers.write().expect("Wakers lock poisoned").pop_front() { -// // // waker.wake(); -// // // } -// // // while let Some(waker) = wakers.pop_front() { -// // // waker.wake(); -// // // } -// // } -// // } -// -// type Result = core::result::Result; -// -// pub trait Table { -// fn insert( -// &self, -// key: K, -// value: V, -// ) -> impl Future>> + Send; -// fn modify( -// &self, -// key: K, -// v: impl FnOnce(V) -> O, -// ) -> impl Future> + Send; -// fn remove( -// &self, -// key: K, -// ) -> impl Future>> + Send; -// fn get( -// &self, -// key: K, -// ) -> impl Future>> + Send; -// } -// -// impl Database { -// pub fn create(path: impl AsRef) -> Result { -// let writing = AtomicBool::new(false); -// let wakers = RwLock::new(VecDeque::new()); -// let db = redb::Database::create(path)?; -// let db = Arc::new(DatabaseHandle { -// database: db, -// writing, -// wakers, -// }); -// let table_inner = TableInner::new(Arc::clone(&db)); -// let users = Users(table_inner.clone()); -// let servers = Servers(table_inner.clone()); -// let settings = Settings(table_inner.clone()); -// Ok(Self { -// servers, -// users, -// settings, -// handle: db, -// }) -// } -// }