diff --git a/Cargo.lock b/Cargo.lock index 752424b15..596b44185 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1118,6 +1118,14 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +[[package]] +name = "core-derive" +version = "0.1.0" +dependencies = [ + "quote", + "syn", +] + [[package]] name = "core-foundation" version = "0.9.3" @@ -1548,13 +1556,14 @@ version = "0.1.0" dependencies = [ "anyhow", "data-encoding", - "ffmpeg-next", "kamadak-exif", "mime", "ring 0.16.20", "sdcore", "sha256", "thumbnailer", + "tokio", + "uhlc", ] [[package]] @@ -1977,31 +1986,6 @@ dependencies = [ "instant", ] -[[package]] -name = "ffmpeg-next" -version = "5.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585e5eaf57eceaa199ba6f6a1f46bdad7992930bb7b45b40275d9445b5ba2bc8" -dependencies = [ - "bitflags 1.3.2", - "ffmpeg-sys-next", - "libc", -] - -[[package]] -name = "ffmpeg-sys-next" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba12dea33516e30c160ce557c7e43dd857276368eb1cd0eef4fce6529f2dee5" -dependencies = [ - "bindgen", - "cc", - "libc", - "num_cpus", - "pkg-config", - "vcpkg", -] - [[package]] name = "field-offset" version = "0.3.4" @@ -6062,9 +6046,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "632d02bff7f874a36f33ea8bb416cd484b90cc66c1194b1a1110d067a7013f58" +checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1" dependencies = [ "proc-macro2", ] @@ -6608,6 +6592,7 @@ dependencies = [ "cargo-edit", "chrono", "config", + "core-derive", "data-encoding", "dyn-clone", "env_logger", @@ -6635,6 +6620,7 @@ dependencies = [ "thumbnailer", "tokio", "ts-rs", + "uhlc", "uuid", "walkdir", "webp", @@ -8261,6 +8247,20 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" +[[package]] +name = "uhlc" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d74cc14aac0f650dae365e42250073bc0f89602bad5751d6159642be37690d6" +dependencies = [ + "hex", + "humantime", + "lazy_static", + "log", + "serde", + "uuid", +] + [[package]] name = "uint" version = "0.9.3" diff --git a/Cargo.toml b/Cargo.toml index 272882047..14553072c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,5 +2,6 @@ members = [ "apps/debug", "apps/desktop/src-tauri", - "core" + "core", + "core/derive" ] diff --git a/apps/debug/Cargo.toml b/apps/debug/Cargo.toml index 6ce0e11f3..d57a34e68 100644 --- a/apps/debug/Cargo.toml +++ b/apps/debug/Cargo.toml @@ -13,5 +13,7 @@ ring = "0.16.20" thumbnailer = "0.4.0" mime = "0.3.16" sha256 = "1.0.3" -ffmpeg-next = "5.0.3" -sdcore = { path = "../../core" } \ No newline at end of file +# ffmpeg-next = "5.0.3" +sdcore = { path = "../../core" } +uhlc = "0.4.1" +tokio = { version = "1.17.0", features = ["sync", "rt"] } diff --git a/apps/debug/src/main.rs b/apps/debug/src/main.rs index c34d66f1e..2bbf73538 100644 --- a/apps/debug/src/main.rs +++ b/apps/debug/src/main.rs @@ -2,6 +2,22 @@ pub mod checksum; -fn main() { - checksum::do_thing(); +use sdcore::{prisma, sync::engine::test, sync::FakeCoreContext}; + +#[tokio::main] +async fn main() { + let db = prisma::new_client().await.unwrap(); + let ctx = FakeCoreContext {}; + test(&ctx).await; + // checksum::do_thing(); + + // create an HLC with a generated UUID and relying on SystemTime::now() + // let hlc = HLC::default(); + + // // generate timestamps + // let ts1 = hlc.new_timestamp(); + // let ts2 = hlc.new_timestamp(); + + // println!("ts1 {}", ts1); + // println!("ts2 {}", ts2); } diff --git a/core/Cargo.toml b/core/Cargo.toml index 917f9310a..35410def1 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -41,6 +41,7 @@ thumbnailer = "0.4.0" mime = "0.3.16" sysinfo = "0.23.5" thiserror = "1.0.30" +core-derive = { path = "./derive" } tokio = { version = "1.17.0", features = ["sync", "rt"] } include_dir = {version = "0.7.2", features = ["glob"]} @@ -48,3 +49,4 @@ async-trait = "0.1.52" dyn-clone = "1.0.5" image = "0.24.1" webp = "0.2.2" +uhlc = "0.4.1" diff --git a/extensions/twitter-history/prisma/schema.prisma b/extensions/twitter-history/prisma/schema.prisma new file mode 100644 index 000000000..e69de29bb