From 40215f53e9a3419741a4f3bf5ad40943c20e481e Mon Sep 17 00:00:00 2001 From: NexVeridian Date: Tue, 25 Feb 2025 19:47:38 -0800 Subject: [PATCH] fix: swap to justfile --- .dockerignore | 3 +- CONTRIBUTING.md | 8 +- Cargo.lock | 193 ++++++++++++++++++++++--------------------- Cargo.toml | 8 +- Makefile | 31 ------- README.md | 16 ++-- benches/bench.rs | 8 +- flake.lock | 30 +++---- flake.nix | 4 +- justfile | 40 +++++++++ src/main.rs | 4 +- src/utils.rs | 8 +- src/utils/init_db.rs | 2 +- tests/integration.rs | 6 +- 14 files changed, 186 insertions(+), 175 deletions(-) delete mode 100644 Makefile create mode 100644 justfile diff --git a/.dockerignore b/.dockerignore index 11d85d9..1d5f337 100644 --- a/.dockerignore +++ b/.dockerignore @@ -11,5 +11,6 @@ docker-compose-surrealdb.dev.yml docker-compose-surrealdb.yml dockerfile *.md -Makefile +justfile +flake.lock flake.nix diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cbd5c75..67fa26d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,5 +1,5 @@ # Contributing code -- Run `make precommit` or `make check` if using nix flakes +- Run `just precommit` or `just check` if using nix flakes # Dev Install ## Dev Containers @@ -9,19 +9,19 @@ Install docker, vscode and the [Dev Containers Extension](https://marketplace.vi `Ctrl+Shift+P` **Dev Containers: Open Folder in Container** -Run code with `F5` or `cargo run` +Run code with `F5` or `cargo run` Run tests with `nix flake check` or `cargo t` ## Docker Compose `git clone` -`make up-surrealdb.dev` +`just up surrealdb.dev` Remove the cargo cache for buildkit with `docker builder prune --filter type=exec.cachemount` ### View Progress -`make view` +`just view` # License All code in this repository is dual-licensed under either [License-MIT](./LICENSE-MIT) or [LICENSE-APACHE](./LICENSE-Apache) at your option. This means you can select the license you prefer. [Why dual license](https://github.com/bevyengine/bevy/issues/2373). diff --git a/Cargo.lock b/Cargo.lock index afdf390..3bbb7d4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -135,9 +135,9 @@ checksum = "ea50b14b7a4b9343f8c627a7a53c52076482bd4bdad0a24fd3ec533ed616cc2c" [[package]] name = "anyhow" -version = "1.0.95" +version = "1.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" +checksum = "6b964d184e89d9b6b67dd2715bc8e74cf3107fb2b529990c90cf517326150bf4" [[package]] name = "approx" @@ -350,9 +350,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backon" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5289ec98f68f28dd809fd601059e6aa908bb8f6108620930828283d4ee23d7" +checksum = "49fef586913a57ff189f25c9b3d034356a5bf6b3fa9a7f067588fe1698ba1f5d" dependencies = [ "fastrand", "gloo-timers", @@ -437,9 +437,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" [[package]] name = "bitvec" @@ -464,16 +464,15 @@ dependencies = [ [[package]] name = "blake3" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1230237285e3e10cde447185e8975408ae24deaa67205ce684805c25bc0c7937" +checksum = "675f87afced0413c9bb02843499dbbd3882a237645883f71a2b59644a6d2f753" dependencies = [ "arrayref", "arrayvec", "cc", "cfg-if", "constant_time_eq", - "memmap2", ] [[package]] @@ -591,12 +590,11 @@ dependencies = [ [[package]] name = "bzip2-sys" -version = "0.1.12+1.0.8" +version = "0.1.13+1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ebc2f1a417f01e1da30ef264ee86ae31d2dcd2d603ea283d3c244a883ca2a9" +checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" dependencies = [ "cc", - "libc", "pkg-config", ] @@ -617,9 +615,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.14" +version = "1.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3d1b2e905a3a7b00a6141adb0e4c0bb941d11caf55349d863942a1cc44e3c9" +checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" dependencies = [ "shlex", ] @@ -695,9 +693,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.39" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" +checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" dependencies = [ "android-tzdata", "iana-time-zone", @@ -705,7 +703,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets", + "windows-link", ] [[package]] @@ -747,18 +745,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.30" +version = "4.5.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92b7b18d71fad5313a1e320fa9897994228ce274b60faa4d694fe0ea89cd9e6d" +checksum = "027bb0d98429ae334a8698531da7077bdf906419543a35a55c2cb1b66437d767" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.30" +version = "4.5.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a35db2071778a7344791a4fb4f95308b5673d219dee3ae348b86642574ecc90c" +checksum = "5589e0cba072e0f3d23791efac0fd8627b49c829c196a492e88168e6a669d863" dependencies = [ "anstyle", "clap_lex", @@ -781,9 +779,9 @@ dependencies = [ [[package]] name = "console" -version = "0.15.10" +version = "0.15.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea3c6ecd8059b57859df5c69830340ed3c41d30e3da0c1cbed90a96ac853041b" +checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" dependencies = [ "encode_unicode", "libc", @@ -1059,9 +1057,9 @@ dependencies = [ [[package]] name = "either" -version = "1.13.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +checksum = "b7914353092ddf589ad78f25c5c1c21b7f80b0ff8621e7c814c3485b5306da9d" [[package]] name = "ena" @@ -1857,9 +1855,9 @@ dependencies = [ [[package]] name = "inout" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ "generic-array", ] @@ -1996,9 +1994,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.169" +version = "0.2.170" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" [[package]] name = "libm" @@ -2012,7 +2010,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "libc", ] @@ -2036,9 +2034,9 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "litemap" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" +checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" [[package]] name = "lock_api" @@ -2052,9 +2050,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.25" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" [[package]] name = "lru" @@ -2167,9 +2165,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3b1c9bd4fe1f0f8b387f6eb9eb3b4a1aa26185e5750efb9140301703f62cd1b" +checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" dependencies = [ "adler2", ] @@ -2452,9 +2450,9 @@ dependencies = [ [[package]] name = "pem" -version = "3.0.4" +version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" +checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" dependencies = [ "base64 0.22.1", "serde", @@ -2605,9 +2603,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" [[package]] name = "powerfmt" @@ -2745,13 +2743,13 @@ dependencies = [ [[package]] name = "quick_cache" -version = "0.6.10" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f67cfc9c723c39f3615eb0840b00c4cb9e2b068d2fa761a30d845ec91730a59" +checksum = "0af25b4e960ffdf0dead61cf0cec0c2e44c76927bf933ab4f02e2858fb449397" dependencies = [ "ahash 0.8.11", "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.2", "parking_lot", ] @@ -2851,8 +2849,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ "rand_chacha 0.9.0", - "rand_core 0.9.1", - "zerocopy 0.8.18", + "rand_core 0.9.3", + "zerocopy 0.8.21", ] [[package]] @@ -2872,7 +2870,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.1", + "rand_core 0.9.3", ] [[package]] @@ -2886,12 +2884,11 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.9.1" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a88e0da7a2c97baa202165137c158d0a2e824ac465d13d81046727b34cb247d3" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ "getrandom 0.3.1", - "zerocopy 0.8.18", ] [[package]] @@ -2928,11 +2925,11 @@ checksum = "ffead9d0a0b45f3e0bc063a244b1779fd53a09d2c2f7282c186a016b1f10a778" [[package]] name = "redox_syscall" -version = "0.5.8" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" +checksum = "82b568323e98e49e2a0899dcee453dd679fae22d69adf9b11dd508d1549b7e2f" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", ] [[package]] @@ -3104,9 +3101,9 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.9" +version = "0.17.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e75ec5e92c4d8aede845126adc388046234541629e76029599ed35a003c7ed24" +checksum = "da5349ae27d3887ca812fb375b45a4fbb36d8d12d2df394968cd86e35683fe73" dependencies = [ "cc", "cfg-if", @@ -3297,7 +3294,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "errno", "libc", "linux-raw-sys", @@ -3419,9 +3416,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.217" +version = "1.0.218" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" dependencies = [ "serde_derive", ] @@ -3437,9 +3434,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.217" +version = "1.0.218" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" dependencies = [ "proc-macro2", "quote", @@ -3448,9 +3445,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.138" +version = "1.0.139" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949" +checksum = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6" dependencies = [ "indexmap 2.7.1", "itoa", @@ -3617,9 +3614,9 @@ dependencies = [ [[package]] name = "spade" -version = "2.12.1" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f5ef1f863aca7d1d7dda7ccfc36a0a4279bd6d3c375176e5e0712e25cb4889" +checksum = "8a7f89cb9a80ac939dedb9ad42720cbe112424b6f6597a2a2e9c5e5b684cd4f7" dependencies = [ "hashbrown 0.14.5", "num-traits", @@ -3641,9 +3638,9 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "stacker" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d08feb8f695b465baed819b03c128dc23f57a694510ab1f06c77f763975685e" +checksum = "d9156ebd5870ef293bfb43f91c7a74528d363ec0d424afe24160ed5a4343d08a" dependencies = [ "cc", "cfg-if", @@ -3685,9 +3682,9 @@ dependencies = [ [[package]] name = "string_cache_codegen" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "244292f3441c89febe5b5bdfbb6863aeaf4f64da810ea3050fd927b27b8d92ce" +checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" dependencies = [ "phf_generator", "phf_shared", @@ -3731,9 +3728,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "surrealdb" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "363c7c2c8ef56a48dd6decbb2bd3193053599b1fcf31ab7d06c8bebb44f4f255" +checksum = "aa1aa87197bad9dd12c93350533a8da09bae064a411f445c97ca0e64faabc304" dependencies = [ "arrayvec", "async-channel", @@ -3772,9 +3769,9 @@ dependencies = [ [[package]] name = "surrealdb-core" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13fc66ca59645fc4a019ee2428325ed101f54fc54904ef250a98e28fc5f98eda" +checksum = "4ceb9f421e07af67b06c57ea7a8b08c3b4e4677de483435ca6d69bd00600a571" dependencies = [ "addr", "affinitypool", @@ -3876,10 +3873,10 @@ dependencies = [ "getrandom 0.2.15", "lru", "parking_lot", - "quick_cache 0.6.10", + "quick_cache 0.6.11", "revision 0.10.0", "tokio", - "vart 0.9.1", + "vart 0.9.2", "wasm-bindgen-futures", ] @@ -4169,9 +4166,9 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.1" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" +checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ "rustls", "tokio", @@ -4322,9 +4319,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "ucd-trie" @@ -4351,9 +4348,9 @@ checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-ident" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" +checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe" [[package]] name = "unicode-normalization" @@ -4441,9 +4438,9 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" -version = "1.13.2" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c1f41ffb7cf259f1ecc2876861a17e7142e63ead296f671f81f6ae85903e0d6" +checksum = "e0f540e3240398cce6128b64ba83fdbdd86129c16a3aa1a3a252efd66eb3d587" dependencies = [ "getrandom 0.3.1", "js-sys", @@ -4459,9 +4456,9 @@ checksum = "87782b74f898179396e93c0efabb38de0d58d50bbd47eae00c71b3a1144dbbae" [[package]] name = "vart" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "907dbbd9267f93d6f023576d8c28710395dc6c417b70ab0c80b05500f7b44938" +checksum = "03dccea250abfe68c00eee55f95af111e041b75bc11796cb83d1c05c5029efd9" [[package]] name = "version_check" @@ -4745,6 +4742,12 @@ dependencies = [ "syn 2.0.98", ] +[[package]] +name = "windows-link" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" + [[package]] name = "windows-registry" version = "0.2.0" @@ -4868,9 +4871,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59690dea168f2198d1a3b0cac23b8063efcd11012f10ae4698f284808c8ef603" +checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1" dependencies = [ "memchr", ] @@ -4881,7 +4884,7 @@ version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", ] [[package]] @@ -4960,11 +4963,11 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.18" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79386d31a42a4996e3336b0919ddb90f81112af416270cff95b5f5af22b839c2" +checksum = "dcf01143b2dd5d134f11f545cf9f1431b13b749695cb33bcce051e7568f99478" dependencies = [ - "zerocopy-derive 0.8.18", + "zerocopy-derive 0.8.21", ] [[package]] @@ -4980,9 +4983,9 @@ dependencies = [ [[package]] name = "zerocopy-derive" -version = "0.8.18" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76331675d372f91bf8d17e13afbd5fe639200b73d01f0fc748bb059f9cca2db7" +checksum = "712c8386f4f4299382c9abee219bee7084f78fb939d88b6840fcc1320d5f6da2" dependencies = [ "proc-macro2", "quote", @@ -4991,18 +4994,18 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index a11ff8e..05bd485 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,25 +1,25 @@ [package] name = "wikidata-to-surrealdb" version = "0.1.0" -edition = "2021" +edition = "2024" license = "MIT OR Apache-2.0" [dependencies] anyhow = "1.0" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" -surrealdb = { version = "2.2.0", features = ["protocol-http", "kv-mem"] } +surrealdb = { version = "2.2.1", features = ["protocol-http", "kv-mem"] } tokio = { version = "1.43", features = ["fs", "time", "sync"] } futures = "0.3" wikidata = "1.1" bzip2 = { version = "0.4", features = ["tokio"] } indicatif = "0.17" rand = "0.8" -backon = { version = "1.3", features = ["tokio-sleep"] } +backon = { version = "1.4", features = ["tokio-sleep"] } [dev-dependencies] rstest = "0.22" -surrealdb = { version = "2.2.0", features = ["kv-mem"] } +surrealdb = { version = "2.2.1", features = ["kv-mem"] } criterion = { version = "0.5", features = ["async_tokio"] } pprof = { version = "0.13", features = ["criterion", "protobuf-codec"] } diff --git a/Makefile b/Makefile deleted file mode 100644 index 962c58c..0000000 --- a/Makefile +++ /dev/null @@ -1,31 +0,0 @@ -COMPOSE_FILES := surrealdb surrealdb.dev - -.PHONY: $(addprefix up-,$(COMPOSE_FILES)) $(addprefix down-,$(COMPOSE_FILES)) - -up: up-surrealdb -$(addprefix up-,$(COMPOSE_FILES)): - make down-$(subst up-,,$@) - docker compose -f docker-compose-$(subst up-,,$@).yml up --build --pull always -d - -down: down-surrealdb -$(addprefix down-,$(COMPOSE_FILES)): - docker compose -f docker-compose-$(subst down-,,$@).yml down --volumes --remove-orphans - docker network prune -f - -view: - docker attach wikidata-to-surrealdb - -precommit: - rustup update - cargo update - cargo check - cargo fmt - cargo t - cargo clippy --fix --allow-dirty - -check: - rustup update - cargo update - nix flake update - nix flake check - cargo clippy --fix --allow-dirty diff --git a/README.md b/README.md index b00d1f5..793900a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Wikidata to SurrealDB -A tool for converting Wikidata dumps to a [SurrealDB](https://surrealdb.com/) database. Either From a bz2 or json file. +A tool for converting Wikidata dumps to a [SurrealDB](https://surrealdb.com/) database. Either From a bz2 or json file. The surrealdb database is ~2.6GB uncompressed or 0.5GB compressed, while the bz2 file is ~80GB, gzip file is ~130GB, and the uncompressed json file is over 1TB. @@ -13,7 +13,7 @@ https://www.wikidata.org/wiki/Wikidata:Data_access ### [Download - latest-all.json.bz2](https://dumps.wikimedia.org/wikidatawiki/entities/latest-all.json.bz2) ## From json file -### Linked Data Interface: [Docs](https://www.wikidata.org/wiki/Wikidata:Data_access#Linked_Data_Interface_(URI)) +### Linked Data Interface: [Docs](https://www.wikidata.org/wiki/Wikidata:Data_access#Linked_Data_Interface_(URI)) ``` https://www.wikidata.org/wiki/Special:EntityData/Q60746544.json https://www.wikidata.org/wiki/Special:EntityData/P527.json @@ -22,7 +22,7 @@ https://www.wikidata.org/wiki/Special:EntityData/P527.json # Install Copy [docker-compose-surrealdb.yml](./docker-compose-surrealdb.yml) -Create data folder next to docker-compose.yml and .env, place data inside, and set the data type in .env +Create data folder next to docker-compose.yml and .env, place data inside, and set the data type in .env ``` ├── data │ ├── Entity.json @@ -30,19 +30,19 @@ Create data folder next to docker-compose.yml and .env, place data inside, and s │ ├── filter.surql │ ├── surrealdb │ └── temp -├── Makefile +├── justfile ├── docker-compose.yml └── .env ``` ### Then run: -`make up-surrealdb` +`just up surrealdb` ### Exit with: -`make down-surrealdb` +`just down surrealdb` ## View Progress -`make view` +`just view` ## Example .env ```bash @@ -112,7 +112,7 @@ pub struct Claim { ```rust pub enum ClaimData { // Entity, Property, Lexeme Tables - Thing(Thing), + Thing(Thing), ClaimValueData(ClaimValueData), } ``` diff --git a/benches/bench.rs b/benches/bench.rs index 480b389..669c163 100644 --- a/benches/bench.rs +++ b/benches/bench.rs @@ -1,16 +1,16 @@ use anyhow::{Error, Ok, Result}; -use criterion::{criterion_group, criterion_main, Criterion}; +use criterion::{Criterion, criterion_group, criterion_main}; use pprof::criterion::{Output, PProfProfiler}; use std::{env, time::Duration}; -use surrealdb::{engine::local::Db, Surreal}; +use surrealdb::{Surreal, engine::local::Db}; use tokio::runtime::Runtime; use init_reader::File_Format; use wikidata_to_surrealdb::utils::*; async fn inti_db() -> Result, Error> { - env::set_var("WIKIDATA_LANG", "en"); - env::set_var("OVERWRITE_DB", "true"); + unsafe { env::set_var("WIKIDATA_LANG", "en") }; + unsafe { env::set_var("OVERWRITE_DB", "true") }; let db = init_db::create_db_mem().await?; diff --git a/flake.lock b/flake.lock index bac1bec..2e36241 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "advisory-db": { "flake": false, "locked": { - "lastModified": 1739520703, - "narHash": "sha256-UqR1f9gThWNBCBobWet7T46vTSxkB6dVAdeqNBoF8mc=", + "lastModified": 1740407442, + "narHash": "sha256-EGzWKm5cUDDJbwVzxSB4N/+CIVycwOG60Gh5f1Vp7JM=", "owner": "rustsec", "repo": "advisory-db", - "rev": "ddccfe8aced779f7b54d27bbe7e122ecb1dda33a", + "rev": "2e25d9665f10de885c81a9fb9d51a289f625b05f", "type": "github" }, "original": { @@ -18,11 +18,11 @@ }, "crane": { "locked": { - "lastModified": 1739815359, - "narHash": "sha256-mjB72/7Fgk5bsIIKA4G9LkIb/u0Ci+VdOyQSgBuQtjo=", + "lastModified": 1739936662, + "narHash": "sha256-x4syUjNUuRblR07nDPeLDP7DpphaBVbUaSoeZkFbGSk=", "owner": "ipetkov", "repo": "crane", - "rev": "282159b2b0588b87a9dbcc40decc91dd5bed5c89", + "rev": "19de14aaeb869287647d9461cbd389187d8ecdb7", "type": "github" }, "original": { @@ -39,11 +39,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1739774189, - "narHash": "sha256-ZupCPljRian/MbkNdwsfMOePRwd6OATKxp/45DE3EL0=", + "lastModified": 1740897281, + "narHash": "sha256-lUCeMKV8sUn8Y4R+4OzFMqH0k00KqvbIu0vSIMsWpH0=", "owner": "nix-community", "repo": "fenix", - "rev": "6b5b5f59f75aa4743fe4c150acf7cb8f8cabf787", + "rev": "2a4bbf46e00e06967f55b3a55a685d2039f2b572", "type": "github" }, "original": { @@ -72,11 +72,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1739742245, - "narHash": "sha256-oAgAV4fLWMIPqsEyZVVdk7c0SUdDOV1E7Epq0EIUQs4=", + "lastModified": 1740791350, + "narHash": "sha256-igS2Z4tVw5W/x3lCZeeadt0vcU9fxtetZ/RyrqsCRQ0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f0204ef4baa3b6317dee1c84ddeffbd293638836", + "rev": "199169a2135e6b864a888e89a2ace345703c025d", "type": "github" }, "original": { @@ -98,11 +98,11 @@ "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1739797572, - "narHash": "sha256-mNGd6sO4U2xpFl3yiivhJrzfxtQUri+FCi0lcYDE7HU=", + "lastModified": 1740851167, + "narHash": "sha256-sFRsGYrI2Z4X+P9jkvb7XZJG6DImVhz8BSELBT2mLdo=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "d10388096e2e02dbe3836460ba59930397d6c1e7", + "rev": "76567ee28dacac2636aeb6e5b6a9560ffca21d87", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 5081e52..84c23cf 100644 --- a/flake.nix +++ b/flake.nix @@ -44,11 +44,8 @@ fpc.rustc fpc.clippy fpc.rust-src - fpc.rustc fpc.rustfmt fpc.rustc-codegen-cranelift-preview - - fp.targets.wasm32-unknown-unknown.latest.rust-std ]) ) ); @@ -80,6 +77,7 @@ ++ lib.optionals pkgs.stdenv.isDarwin [ # Additional darwin specific inputs can be set here pkgs.libiconv + pkgs.darwin.apple_sdk.frameworks.SystemConfiguration ]; # Additional environment variables can be set directly diff --git a/justfile b/justfile new file mode 100644 index 0000000..cd0dcca --- /dev/null +++ b/justfile @@ -0,0 +1,40 @@ +set shell := ["bash", "-c"] +set dotenv-path := "./config/dev.env" +engine := `if command -v docker >/dev/null 2>&1; then echo "docker"; else echo "podman"; fi` + +check: + just precommit-shared + nix flake update + nix flake check -v + +precommit: + just precommit-shared + cargo check + just test + +# surrealdb, surrealdb.dev +default := "surrealdb" +up file = default: + just down {{file}} + {{engine}} compose -f docker-compose-{{file}}.yml up --build --pull always -d + +down file = default: + {{engine}} compose -f docker-compose-{{file}}.yml down --volumes --remove-orphans + {{engine}} network prune -f + +view: + {{engine}} attach wikidata-to-surrealdb + +alias t := test +test: + cargo t --no-fail-fast + +precommit-shared: + cargo upgrade -v + cargo update + cargo fmt --all + just clippy + +clippy: + cargo clippy --all --fix --allow-dirty -- -W clippy::nursery -W rust-2018-idioms \ + -A clippy::future_not_send -A clippy::option_if_let_else -A clippy::or_fun_call diff --git a/src/main.rs b/src/main.rs index f7a1d2e..dd89a06 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,10 +1,10 @@ use anyhow::{Error, Ok, Result}; use std::env; -use surrealdb::{engine::remote::http::Client, Surreal}; +use surrealdb::{Surreal, engine::remote::http::Client}; use tokio::{ fs, sync::OnceCell, - time::{sleep, Duration}, + time::{Duration, sleep}, }; mod utils; use init_reader::File_Format; diff --git a/src/utils.rs b/src/utils.rs index 47c7e92..0613826 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -3,8 +3,8 @@ use backon::Retryable; use core::panic; use futures::future::join_all; use indicatif::ProgressBar; -use rand::{distributions::Alphanumeric, Rng}; -use serde_json::{from_str, Value}; +use rand::{Rng, distributions::Alphanumeric}; +use serde_json::{Value, from_str}; use std::{env, io::BufRead}; use surrealdb::{Connection, Surreal}; use tokio::sync::OnceCell; @@ -158,7 +158,7 @@ impl CreateVersion { .bind(("lexeme_vec", lexeme_vec)) .await?; - if let Some(ref p) = pb { + if let Some(p) = pb { p.inc(batch_size as u64) } Ok(()) @@ -192,7 +192,7 @@ impl CreateVersion { tokio::fs::remove_file(&file_path).await?; - if let Some(ref p) = pb { + if let Some(p) = pb { p.inc(batch_size as u64) } Ok(()) diff --git a/src/utils/init_db.rs b/src/utils/init_db.rs index a2e217a..28dd5eb 100644 --- a/src/utils/init_db.rs +++ b/src/utils/init_db.rs @@ -2,12 +2,12 @@ use anyhow::Error; use anyhow::Result; use std::env; use surrealdb::{ + Surreal, engine::{ local::{Db, Mem}, remote::http::{Client, Http}, }, opt::auth::Root, - Surreal, }; use tokio::sync::OnceCell; diff --git a/tests/integration.rs b/tests/integration.rs index ddebf17..1b24963 100644 --- a/tests/integration.rs +++ b/tests/integration.rs @@ -1,13 +1,13 @@ use anyhow::{Error, Ok, Result}; use rstest::rstest; use std::{env, io::BufRead}; -use surrealdb::{engine::local::Db, Surreal}; +use surrealdb::{Surreal, engine::local::Db}; use init_reader::File_Format; use wikidata_to_surrealdb::utils::*; async fn inti_db() -> Result, Error> { - env::set_var("WIKIDATA_LANG", "en"); + unsafe { env::set_var("WIKIDATA_LANG", "en") }; let db = init_db::create_db_mem().await?; @@ -55,7 +55,7 @@ async fn entity_threaded(#[case] version: CreateVersion) -> Result<(), Error> { #[tokio::test] async fn entity_threaded_filter() -> Result<(), Error> { - env::set_var("FILTER_PATH", "./tests/data/test_filter.surql"); + unsafe { env::set_var("FILTER_PATH", "./tests/data/test_filter.surql") }; let db = inti_db().await?; let reader = init_reader("json", "bench").await;