diff --git a/AGENTS.md b/AGENTS.md index b9b48f6..95b5518 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -22,23 +22,30 @@ NodeDB Studio is a **desktop GUI client for NodeDB**, built in Rust with This is a Cargo workspace; the app is the `nodedb-studio` member crate. -## Setup — local NodeDB dependency (do this first) +## Setup — NodeDB dependency -`Cargo.toml` pins `nodedb-client` / `nodedb-types` to a published version, but -those crates are not on crates.io yet. Point them at a local NodeDB checkout with -a **gitignored** Cargo patch — never hardcode machine paths in `Cargo.toml`. +`Cargo.toml` pins `nodedb-client` / `nodedb-types` to the `NodeDB-Lab/nodedb` git +repo by commit `rev`, not to crates.io (the published crates lag the repo by +hundreds of commits). Cargo fetches it on first build; no local NodeDB checkout is +needed. Both crates must pin the **same** rev, and always a commit, never a branch: +a branch would make every CI run build different upstream code. -Create `.cargo/config.toml` at the workspace root (already gitignored): +Bump the rev deliberately. The native wire is not frozen pre-1.0, and the seam +decoders are written against the pinned rev, so re-run fmt, clippy and nextest +after any bump. + +To develop against a local NodeDB checkout instead, override with a **gitignored** +Cargo patch. Never hardcode machine paths in `Cargo.toml`. Create +`.cargo/config.toml` at the workspace root (already gitignored): ```toml -[patch.crates-io] +[patch."https://github.com/NodeDB-Lab/nodedb.git"] nodedb-client = { path = "../nodedb/nodedb-client" } nodedb-types = { path = "../nodedb/nodedb-types" } ``` -Adjust the paths to your checkout. The version pinned in `Cargo.toml` must match -your local NodeDB workspace version (see its root `Cargo.toml`). If Cargo says -your toolchain is too old, run `rustup update stable`. +Adjust the paths to your checkout. If Cargo says your toolchain is too old, run +`rustup update stable`. ## Commands diff --git a/Cargo.lock b/Cargo.lock index a22d76a..6844804 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -26,7 +26,7 @@ checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -512,6 +512,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "chacha20" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "rand_core 0.10.1", +] + [[package]] name = "cipher" version = "0.4.4" @@ -723,6 +734,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "crc32c" version = "0.6.8" @@ -1912,6 +1932,7 @@ dependencies = [ "cfg-if", "libc", "r-efi 6.0.0", + "rand_core 0.10.1", "wasip2", "wasip3", ] @@ -1968,6 +1989,30 @@ dependencies = [ "winapi", ] +[[package]] +name = "glam" +version = "0.30.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19fc433e8437a212d1b6f1e68c7824af3aed907da60afa994e7f542d18d12aa9" + +[[package]] +name = "glam" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "556f6b2ea90b8d15a74e0e7bb41671c9bdf38cd9f78c284d750b9ce58a2b5be7" + +[[package]] +name = "glam" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f70749695b063ecbf6b62949ccccde2e733ec3ecbbd71d467dca4e5c6c97cca0" + +[[package]] +name = "glam" +version = "0.33.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c426daf70099baff33fac0ba85151c42424861c56828cef9ba02dacb78eb6b26" + [[package]] name = "glib" version = "0.18.5" @@ -2705,9 +2750,9 @@ dependencies = [ [[package]] name = "lz4_flex" -version = "0.11.6" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373f5eceeeab7925e0c1098212f2fbc4d416adec9d35051a6ab251e824c1854a" +checksum = "ecbdfe44b1bd960b68170b417450a628c43f7cf56bb3c5317e61cb230ee7f226" [[package]] name = "mac" @@ -2935,11 +2980,15 @@ dependencies = [ [[package]] name = "nalgebra" -version = "0.33.3" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d43ddcacf343185dfd6de2ee786d9e8b1c2301622afab66b6c73baf9882abfd" +checksum = "adc43a60c217b0c6ff46e47f26911015ad8d2e5a8be1af668c67e370d99a4346" dependencies = [ "approx", + "glam 0.30.10", + "glam 0.31.1", + "glam 0.32.1", + "glam 0.33.5", "matrixmultiply", "nalgebra-macros", "num-complex", @@ -2951,9 +3000,9 @@ dependencies = [ [[package]] name = "nalgebra-macros" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "254a5372af8fc138e36684761d3c0cdb758a4410e938babcff1c860ce14ddbfc" +checksum = "973e7178a678cfd059ccec50887658d482ce16b0aa9da3888ddeab5cd5eb4889" dependencies = [ "proc-macro2", "quote", @@ -2962,11 +3011,11 @@ dependencies = [ [[package]] name = "nanoid" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8" +checksum = "8628de41fe064cc3f0cf07f3d299ee3e73521adaff72278731d5c8cae3797873" dependencies = [ - "rand 0.8.6", + "rand 0.9.4", ] [[package]] @@ -3033,9 +3082,8 @@ dependencies = [ [[package]] name = "nodedb-client" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e21742bfa5b8c994f8083114d0af7a169d40e6b14689bb6320c8ace890f423a8" +version = "0.5.0" +source = "git+https://github.com/NodeDB-Lab/nodedb.git?rev=fda34193afd77894b87170a59df224d4791e6495#fda34193afd77894b87170a59df224d4791e6495" dependencies = [ "async-trait", "nodedb-types", @@ -3047,9 +3095,8 @@ dependencies = [ [[package]] name = "nodedb-codec" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72f97fb96fa7d564aa91dd2a0a28f4491584a454f39f1fdf5799cdeb9dc1d486" +version = "0.5.0" +source = "git+https://github.com/NodeDB-Lab/nodedb.git?rev=fda34193afd77894b87170a59df224d4791e6495#fda34193afd77894b87170a59df224d4791e6495" dependencies = [ "lz4_flex", "nalgebra", @@ -3081,17 +3128,16 @@ dependencies = [ [[package]] name = "nodedb-types" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93c489ddea61e73f6e623254ed664665495414ae757e106b8e1eedaea249025" +version = "0.5.0" +source = "git+https://github.com/NodeDB-Lab/nodedb.git?rev=fda34193afd77894b87170a59df224d4791e6495#fda34193afd77894b87170a59df224d4791e6495" dependencies = [ "aes-gcm", "bytemuck", "crc32c", - "getrandom 0.3.4", + "getrandom 0.4.2", "nanoid", "nodedb-codec", - "rand 0.9.4", + "rand 0.10.2", "rkyv 0.8.16", "roaring", "rust_decimal", @@ -3208,7 +3254,7 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" dependencies = [ - "proc-macro-crate 3.5.0", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 2.0.117", @@ -3659,7 +3705,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "opaque-debug", "universal-hash", ] @@ -3935,6 +3981,17 @@ dependencies = [ "rand_core 0.9.5", ] +[[package]] +name = "rand" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" +dependencies = [ + "chacha20", + "getrandom 0.4.2", + "rand_core 0.10.1", +] + [[package]] name = "rand_chacha" version = "0.2.2" @@ -3992,6 +4049,12 @@ dependencies = [ "getrandom 0.3.4", ] +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + [[package]] name = "rand_hc" version = "0.2.0" @@ -4396,9 +4459,9 @@ dependencies = [ [[package]] name = "safe_arch" -version = "0.7.4" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" +checksum = "42c6efa15875e6ecb39ca61fb0b0c1a40b84fac5a5ffe71eef7d1000c8eb3f5f" dependencies = [ "bytemuck", ] @@ -4580,7 +4643,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest", ] @@ -4591,7 +4654,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest", ] @@ -4632,14 +4695,13 @@ dependencies = [ [[package]] name = "simba" -version = "0.9.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c99284beb21666094ba2b75bbceda012e610f5479dfcc2d6e2426f53197ffd95" +checksum = "f1a7200d82ff1c7b4235efd12f11e2537a402c91cf83a5cb97ce80eef787fde7" dependencies = [ "approx", "num-complex", "num-traits", - "paste", "wide", ] @@ -5336,11 +5398,11 @@ checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20" [[package]] name = "ulid" -version = "1.2.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "470dbf6591da1b39d43c14523b2b469c86879a53e8b758c8e090a470fe7b1fbe" +checksum = "947dde63b6d514cc5e044edad4e0ca7261afd1099d16c83d942cb2b2f348689c" dependencies = [ - "rand 0.9.4", + "rand 0.10.2", "web-time", ] @@ -5732,9 +5794,9 @@ checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" [[package]] name = "wide" -version = "0.7.33" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03" +checksum = "de2aaf408e58689c2096682331b1f42bb2d9f2ed6b11560407d023cd0a6c634e" dependencies = [ "bytemuck", "safe_arch", @@ -6429,18 +6491,16 @@ checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e" [[package]] name = "zerompk" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5fdec1c176abb9ac7f1e1f40aa05c2c2a01984e895787b5f2e0b6c9c1ad7f20" +version = "0.7.1" +source = "git+https://github.com/nuskey8/zerompk?rev=75d527ff8930341c859a757866b0e07f03d09ef8#75d527ff8930341c859a757866b0e07f03d09ef8" dependencies = [ "zerompk_derive", ] [[package]] name = "zerompk_derive" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02586870c5f30b25cf5a2eae9ab9ba29d2023ca79ee267e3c13ad0ec57b24765" +version = "0.7.1" +source = "git+https://github.com/nuskey8/zerompk?rev=75d527ff8930341c859a757866b0e07f03d09ef8#75d527ff8930341c859a757866b0e07f03d09ef8" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 2d17732..d360e3d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,8 +17,8 @@ homepage = "https://nodedb.dev" # enabled in the phase that first constructs a NativeClient — it drags in a # TLS + C-toolchain build tree (tokio-rustls, aws-lc-rs, cmake), so it is not # carried while the seam impl is an inert stub. -nodedb-client = "0.4.0" -nodedb-types = "0.4.0" +nodedb-client = { git = "https://github.com/NodeDB-Lab/nodedb.git", rev = "fda34193afd77894b87170a59df224d4791e6495" } +nodedb-types = { git = "https://github.com/NodeDB-Lab/nodedb.git", rev = "fda34193afd77894b87170a59df224d4791e6495" } # Async async-trait = "0.1" tokio = { version = "1", features = ["rt-multi-thread", "macros", "time"] }