fix: swap to justfile

This commit is contained in:
Elijah McMorris 2025-02-25 19:47:38 -08:00
parent 7671ab11f1
commit 40215f53e9
Signed by: NexVeridian
SSH key fingerprint: SHA256:bsA1SKZxuEcEVHAy3gY1HUeM5ykRJl0U0kQHQn0hMg8
14 changed files with 186 additions and 175 deletions

View file

@ -11,5 +11,6 @@ docker-compose-surrealdb.dev.yml
docker-compose-surrealdb.yml docker-compose-surrealdb.yml
dockerfile dockerfile
*.md *.md
Makefile justfile
flake.lock
flake.nix flake.nix

View file

@ -1,5 +1,5 @@
# Contributing code # 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 Install
## Dev Containers ## 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** `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` Run tests with `nix flake check` or `cargo t`
## Docker Compose ## Docker Compose
`git clone` `git clone`
`make up-surrealdb.dev` `just up surrealdb.dev`
Remove the cargo cache for buildkit with `docker builder prune --filter type=exec.cachemount` Remove the cargo cache for buildkit with `docker builder prune --filter type=exec.cachemount`
### View Progress ### View Progress
`make view` `just view`
# License # 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). 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).

193
Cargo.lock generated
View file

@ -135,9 +135,9 @@ checksum = "ea50b14b7a4b9343f8c627a7a53c52076482bd4bdad0a24fd3ec533ed616cc2c"
[[package]] [[package]]
name = "anyhow" name = "anyhow"
version = "1.0.95" version = "1.0.96"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" checksum = "6b964d184e89d9b6b67dd2715bc8e74cf3107fb2b529990c90cf517326150bf4"
[[package]] [[package]]
name = "approx" name = "approx"
@ -350,9 +350,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
[[package]] [[package]]
name = "backon" name = "backon"
version = "1.3.0" version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba5289ec98f68f28dd809fd601059e6aa908bb8f6108620930828283d4ee23d7" checksum = "49fef586913a57ff189f25c9b3d034356a5bf6b3fa9a7f067588fe1698ba1f5d"
dependencies = [ dependencies = [
"fastrand", "fastrand",
"gloo-timers", "gloo-timers",
@ -437,9 +437,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]] [[package]]
name = "bitflags" name = "bitflags"
version = "2.8.0" version = "2.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd"
[[package]] [[package]]
name = "bitvec" name = "bitvec"
@ -464,16 +464,15 @@ dependencies = [
[[package]] [[package]]
name = "blake3" name = "blake3"
version = "1.6.0" version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1230237285e3e10cde447185e8975408ae24deaa67205ce684805c25bc0c7937" checksum = "675f87afced0413c9bb02843499dbbd3882a237645883f71a2b59644a6d2f753"
dependencies = [ dependencies = [
"arrayref", "arrayref",
"arrayvec", "arrayvec",
"cc", "cc",
"cfg-if", "cfg-if",
"constant_time_eq", "constant_time_eq",
"memmap2",
] ]
[[package]] [[package]]
@ -591,12 +590,11 @@ dependencies = [
[[package]] [[package]]
name = "bzip2-sys" 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" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72ebc2f1a417f01e1da30ef264ee86ae31d2dcd2d603ea283d3c244a883ca2a9" checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14"
dependencies = [ dependencies = [
"cc", "cc",
"libc",
"pkg-config", "pkg-config",
] ]
@ -617,9 +615,9 @@ dependencies = [
[[package]] [[package]]
name = "cc" name = "cc"
version = "1.2.14" version = "1.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c3d1b2e905a3a7b00a6141adb0e4c0bb941d11caf55349d863942a1cc44e3c9" checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c"
dependencies = [ dependencies = [
"shlex", "shlex",
] ]
@ -695,9 +693,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
[[package]] [[package]]
name = "chrono" name = "chrono"
version = "0.4.39" version = "0.4.40"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c"
dependencies = [ dependencies = [
"android-tzdata", "android-tzdata",
"iana-time-zone", "iana-time-zone",
@ -705,7 +703,7 @@ dependencies = [
"num-traits", "num-traits",
"serde", "serde",
"wasm-bindgen", "wasm-bindgen",
"windows-targets", "windows-link",
] ]
[[package]] [[package]]
@ -747,18 +745,18 @@ dependencies = [
[[package]] [[package]]
name = "clap" name = "clap"
version = "4.5.30" version = "4.5.31"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "92b7b18d71fad5313a1e320fa9897994228ce274b60faa4d694fe0ea89cd9e6d" checksum = "027bb0d98429ae334a8698531da7077bdf906419543a35a55c2cb1b66437d767"
dependencies = [ dependencies = [
"clap_builder", "clap_builder",
] ]
[[package]] [[package]]
name = "clap_builder" name = "clap_builder"
version = "4.5.30" version = "4.5.31"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a35db2071778a7344791a4fb4f95308b5673d219dee3ae348b86642574ecc90c" checksum = "5589e0cba072e0f3d23791efac0fd8627b49c829c196a492e88168e6a669d863"
dependencies = [ dependencies = [
"anstyle", "anstyle",
"clap_lex", "clap_lex",
@ -781,9 +779,9 @@ dependencies = [
[[package]] [[package]]
name = "console" name = "console"
version = "0.15.10" version = "0.15.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea3c6ecd8059b57859df5c69830340ed3c41d30e3da0c1cbed90a96ac853041b" checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8"
dependencies = [ dependencies = [
"encode_unicode", "encode_unicode",
"libc", "libc",
@ -1059,9 +1057,9 @@ dependencies = [
[[package]] [[package]]
name = "either" name = "either"
version = "1.13.0" version = "1.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" checksum = "b7914353092ddf589ad78f25c5c1c21b7f80b0ff8621e7c814c3485b5306da9d"
[[package]] [[package]]
name = "ena" name = "ena"
@ -1857,9 +1855,9 @@ dependencies = [
[[package]] [[package]]
name = "inout" name = "inout"
version = "0.1.3" version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01"
dependencies = [ dependencies = [
"generic-array", "generic-array",
] ]
@ -1996,9 +1994,9 @@ dependencies = [
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.169" version = "0.2.170"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828"
[[package]] [[package]]
name = "libm" name = "libm"
@ -2012,7 +2010,7 @@ version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
dependencies = [ dependencies = [
"bitflags 2.8.0", "bitflags 2.9.0",
"libc", "libc",
] ]
@ -2036,9 +2034,9 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab"
[[package]] [[package]]
name = "litemap" name = "litemap"
version = "0.7.4" version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856"
[[package]] [[package]]
name = "lock_api" name = "lock_api"
@ -2052,9 +2050,9 @@ dependencies = [
[[package]] [[package]]
name = "log" name = "log"
version = "0.4.25" version = "0.4.26"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e"
[[package]] [[package]]
name = "lru" name = "lru"
@ -2167,9 +2165,9 @@ dependencies = [
[[package]] [[package]]
name = "miniz_oxide" name = "miniz_oxide"
version = "0.8.4" version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b3b1c9bd4fe1f0f8b387f6eb9eb3b4a1aa26185e5750efb9140301703f62cd1b" checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5"
dependencies = [ dependencies = [
"adler2", "adler2",
] ]
@ -2452,9 +2450,9 @@ dependencies = [
[[package]] [[package]]
name = "pem" name = "pem"
version = "3.0.4" version = "3.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3"
dependencies = [ dependencies = [
"base64 0.22.1", "base64 0.22.1",
"serde", "serde",
@ -2605,9 +2603,9 @@ dependencies = [
[[package]] [[package]]
name = "portable-atomic" name = "portable-atomic"
version = "1.10.0" version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e"
[[package]] [[package]]
name = "powerfmt" name = "powerfmt"
@ -2745,13 +2743,13 @@ dependencies = [
[[package]] [[package]]
name = "quick_cache" name = "quick_cache"
version = "0.6.10" version = "0.6.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f67cfc9c723c39f3615eb0840b00c4cb9e2b068d2fa761a30d845ec91730a59" checksum = "0af25b4e960ffdf0dead61cf0cec0c2e44c76927bf933ab4f02e2858fb449397"
dependencies = [ dependencies = [
"ahash 0.8.11", "ahash 0.8.11",
"equivalent", "equivalent",
"hashbrown 0.14.5", "hashbrown 0.15.2",
"parking_lot", "parking_lot",
] ]
@ -2851,8 +2849,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94"
dependencies = [ dependencies = [
"rand_chacha 0.9.0", "rand_chacha 0.9.0",
"rand_core 0.9.1", "rand_core 0.9.3",
"zerocopy 0.8.18", "zerocopy 0.8.21",
] ]
[[package]] [[package]]
@ -2872,7 +2870,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
dependencies = [ dependencies = [
"ppv-lite86", "ppv-lite86",
"rand_core 0.9.1", "rand_core 0.9.3",
] ]
[[package]] [[package]]
@ -2886,12 +2884,11 @@ dependencies = [
[[package]] [[package]]
name = "rand_core" name = "rand_core"
version = "0.9.1" version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a88e0da7a2c97baa202165137c158d0a2e824ac465d13d81046727b34cb247d3" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38"
dependencies = [ dependencies = [
"getrandom 0.3.1", "getrandom 0.3.1",
"zerocopy 0.8.18",
] ]
[[package]] [[package]]
@ -2928,11 +2925,11 @@ checksum = "ffead9d0a0b45f3e0bc063a244b1779fd53a09d2c2f7282c186a016b1f10a778"
[[package]] [[package]]
name = "redox_syscall" name = "redox_syscall"
version = "0.5.8" version = "0.5.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" checksum = "82b568323e98e49e2a0899dcee453dd679fae22d69adf9b11dd508d1549b7e2f"
dependencies = [ dependencies = [
"bitflags 2.8.0", "bitflags 2.9.0",
] ]
[[package]] [[package]]
@ -3104,9 +3101,9 @@ dependencies = [
[[package]] [[package]]
name = "ring" name = "ring"
version = "0.17.9" version = "0.17.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e75ec5e92c4d8aede845126adc388046234541629e76029599ed35a003c7ed24" checksum = "da5349ae27d3887ca812fb375b45a4fbb36d8d12d2df394968cd86e35683fe73"
dependencies = [ dependencies = [
"cc", "cc",
"cfg-if", "cfg-if",
@ -3297,7 +3294,7 @@ version = "0.38.44"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154"
dependencies = [ dependencies = [
"bitflags 2.8.0", "bitflags 2.9.0",
"errno", "errno",
"libc", "libc",
"linux-raw-sys", "linux-raw-sys",
@ -3419,9 +3416,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73"
[[package]] [[package]]
name = "serde" name = "serde"
version = "1.0.217" version = "1.0.218"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60"
dependencies = [ dependencies = [
"serde_derive", "serde_derive",
] ]
@ -3437,9 +3434,9 @@ dependencies = [
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
version = "1.0.217" version = "1.0.218"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -3448,9 +3445,9 @@ dependencies = [
[[package]] [[package]]
name = "serde_json" name = "serde_json"
version = "1.0.138" version = "1.0.139"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949" checksum = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6"
dependencies = [ dependencies = [
"indexmap 2.7.1", "indexmap 2.7.1",
"itoa", "itoa",
@ -3617,9 +3614,9 @@ dependencies = [
[[package]] [[package]]
name = "spade" name = "spade"
version = "2.12.1" version = "2.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93f5ef1f863aca7d1d7dda7ccfc36a0a4279bd6d3c375176e5e0712e25cb4889" checksum = "8a7f89cb9a80ac939dedb9ad42720cbe112424b6f6597a2a2e9c5e5b684cd4f7"
dependencies = [ dependencies = [
"hashbrown 0.14.5", "hashbrown 0.14.5",
"num-traits", "num-traits",
@ -3641,9 +3638,9 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
[[package]] [[package]]
name = "stacker" name = "stacker"
version = "0.1.18" version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d08feb8f695b465baed819b03c128dc23f57a694510ab1f06c77f763975685e" checksum = "d9156ebd5870ef293bfb43f91c7a74528d363ec0d424afe24160ed5a4343d08a"
dependencies = [ dependencies = [
"cc", "cc",
"cfg-if", "cfg-if",
@ -3685,9 +3682,9 @@ dependencies = [
[[package]] [[package]]
name = "string_cache_codegen" name = "string_cache_codegen"
version = "0.5.3" version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "244292f3441c89febe5b5bdfbb6863aeaf4f64da810ea3050fd927b27b8d92ce" checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0"
dependencies = [ dependencies = [
"phf_generator", "phf_generator",
"phf_shared", "phf_shared",
@ -3731,9 +3728,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]] [[package]]
name = "surrealdb" name = "surrealdb"
version = "2.2.0" version = "2.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "363c7c2c8ef56a48dd6decbb2bd3193053599b1fcf31ab7d06c8bebb44f4f255" checksum = "aa1aa87197bad9dd12c93350533a8da09bae064a411f445c97ca0e64faabc304"
dependencies = [ dependencies = [
"arrayvec", "arrayvec",
"async-channel", "async-channel",
@ -3772,9 +3769,9 @@ dependencies = [
[[package]] [[package]]
name = "surrealdb-core" name = "surrealdb-core"
version = "2.2.0" version = "2.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13fc66ca59645fc4a019ee2428325ed101f54fc54904ef250a98e28fc5f98eda" checksum = "4ceb9f421e07af67b06c57ea7a8b08c3b4e4677de483435ca6d69bd00600a571"
dependencies = [ dependencies = [
"addr", "addr",
"affinitypool", "affinitypool",
@ -3876,10 +3873,10 @@ dependencies = [
"getrandom 0.2.15", "getrandom 0.2.15",
"lru", "lru",
"parking_lot", "parking_lot",
"quick_cache 0.6.10", "quick_cache 0.6.11",
"revision 0.10.0", "revision 0.10.0",
"tokio", "tokio",
"vart 0.9.1", "vart 0.9.2",
"wasm-bindgen-futures", "wasm-bindgen-futures",
] ]
@ -4169,9 +4166,9 @@ dependencies = [
[[package]] [[package]]
name = "tokio-rustls" name = "tokio-rustls"
version = "0.26.1" version = "0.26.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b"
dependencies = [ dependencies = [
"rustls", "rustls",
"tokio", "tokio",
@ -4322,9 +4319,9 @@ dependencies = [
[[package]] [[package]]
name = "typenum" name = "typenum"
version = "1.17.0" version = "1.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f"
[[package]] [[package]]
name = "ucd-trie" name = "ucd-trie"
@ -4351,9 +4348,9 @@ checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539"
[[package]] [[package]]
name = "unicode-ident" name = "unicode-ident"
version = "1.0.16" version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe"
[[package]] [[package]]
name = "unicode-normalization" name = "unicode-normalization"
@ -4441,9 +4438,9 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
[[package]] [[package]]
name = "uuid" name = "uuid"
version = "1.13.2" version = "1.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c1f41ffb7cf259f1ecc2876861a17e7142e63ead296f671f81f6ae85903e0d6" checksum = "e0f540e3240398cce6128b64ba83fdbdd86129c16a3aa1a3a252efd66eb3d587"
dependencies = [ dependencies = [
"getrandom 0.3.1", "getrandom 0.3.1",
"js-sys", "js-sys",
@ -4459,9 +4456,9 @@ checksum = "87782b74f898179396e93c0efabb38de0d58d50bbd47eae00c71b3a1144dbbae"
[[package]] [[package]]
name = "vart" name = "vart"
version = "0.9.1" version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "907dbbd9267f93d6f023576d8c28710395dc6c417b70ab0c80b05500f7b44938" checksum = "03dccea250abfe68c00eee55f95af111e041b75bc11796cb83d1c05c5029efd9"
[[package]] [[package]]
name = "version_check" name = "version_check"
@ -4745,6 +4742,12 @@ dependencies = [
"syn 2.0.98", "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]] [[package]]
name = "windows-registry" name = "windows-registry"
version = "0.2.0" version = "0.2.0"
@ -4868,9 +4871,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
[[package]] [[package]]
name = "winnow" name = "winnow"
version = "0.7.2" version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59690dea168f2198d1a3b0cac23b8063efcd11012f10ae4698f284808c8ef603" checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1"
dependencies = [ dependencies = [
"memchr", "memchr",
] ]
@ -4881,7 +4884,7 @@ version = "0.33.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c"
dependencies = [ dependencies = [
"bitflags 2.8.0", "bitflags 2.9.0",
] ]
[[package]] [[package]]
@ -4960,11 +4963,11 @@ dependencies = [
[[package]] [[package]]
name = "zerocopy" name = "zerocopy"
version = "0.8.18" version = "0.8.21"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "79386d31a42a4996e3336b0919ddb90f81112af416270cff95b5f5af22b839c2" checksum = "dcf01143b2dd5d134f11f545cf9f1431b13b749695cb33bcce051e7568f99478"
dependencies = [ dependencies = [
"zerocopy-derive 0.8.18", "zerocopy-derive 0.8.21",
] ]
[[package]] [[package]]
@ -4980,9 +4983,9 @@ dependencies = [
[[package]] [[package]]
name = "zerocopy-derive" name = "zerocopy-derive"
version = "0.8.18" version = "0.8.21"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "76331675d372f91bf8d17e13afbd5fe639200b73d01f0fc748bb059f9cca2db7" checksum = "712c8386f4f4299382c9abee219bee7084f78fb939d88b6840fcc1320d5f6da2"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -4991,18 +4994,18 @@ dependencies = [
[[package]] [[package]]
name = "zerofrom" name = "zerofrom"
version = "0.1.5" version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5"
dependencies = [ dependencies = [
"zerofrom-derive", "zerofrom-derive",
] ]
[[package]] [[package]]
name = "zerofrom-derive" name = "zerofrom-derive"
version = "0.1.5" version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",

View file

@ -1,25 +1,25 @@
[package] [package]
name = "wikidata-to-surrealdb" name = "wikidata-to-surrealdb"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition = "2024"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
[dependencies] [dependencies]
anyhow = "1.0" anyhow = "1.0"
serde = { version = "1.0", features = ["derive"] } serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0" 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"] } tokio = { version = "1.43", features = ["fs", "time", "sync"] }
futures = "0.3" futures = "0.3"
wikidata = "1.1" wikidata = "1.1"
bzip2 = { version = "0.4", features = ["tokio"] } bzip2 = { version = "0.4", features = ["tokio"] }
indicatif = "0.17" indicatif = "0.17"
rand = "0.8" rand = "0.8"
backon = { version = "1.3", features = ["tokio-sleep"] } backon = { version = "1.4", features = ["tokio-sleep"] }
[dev-dependencies] [dev-dependencies]
rstest = "0.22" 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"] } criterion = { version = "0.5", features = ["async_tokio"] }
pprof = { version = "0.13", features = ["criterion", "protobuf-codec"] } pprof = { version = "0.13", features = ["criterion", "protobuf-codec"] }

View file

@ -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

View file

@ -1,5 +1,5 @@
# Wikidata to SurrealDB # 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. 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) ### [Download - latest-all.json.bz2](https://dumps.wikimedia.org/wikidatawiki/entities/latest-all.json.bz2)
## From json file ## 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/Q60746544.json
https://www.wikidata.org/wiki/Special:EntityData/P527.json https://www.wikidata.org/wiki/Special:EntityData/P527.json
@ -22,7 +22,7 @@ https://www.wikidata.org/wiki/Special:EntityData/P527.json
# Install # Install
Copy [docker-compose-surrealdb.yml](./docker-compose-surrealdb.yml) 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 ├── data
│ ├── Entity.json │ ├── Entity.json
@ -30,19 +30,19 @@ Create data folder next to docker-compose.yml and .env, place data inside, and s
│ ├── filter.surql │ ├── filter.surql
│ ├── surrealdb │ ├── surrealdb
│ └── temp │ └── temp
├── Makefile ├── justfile
├── docker-compose.yml ├── docker-compose.yml
└── .env └── .env
``` ```
### Then run: ### Then run:
`make up-surrealdb` `just up surrealdb`
### Exit with: ### Exit with:
`make down-surrealdb` `just down surrealdb`
## View Progress ## View Progress
`make view` `just view`
## Example .env ## Example .env
```bash ```bash
@ -112,7 +112,7 @@ pub struct Claim {
```rust ```rust
pub enum ClaimData { pub enum ClaimData {
// Entity, Property, Lexeme Tables // Entity, Property, Lexeme Tables
Thing(Thing), Thing(Thing),
ClaimValueData(ClaimValueData), ClaimValueData(ClaimValueData),
} }
``` ```

View file

@ -1,16 +1,16 @@
use anyhow::{Error, Ok, Result}; 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 pprof::criterion::{Output, PProfProfiler};
use std::{env, time::Duration}; use std::{env, time::Duration};
use surrealdb::{engine::local::Db, Surreal}; use surrealdb::{Surreal, engine::local::Db};
use tokio::runtime::Runtime; use tokio::runtime::Runtime;
use init_reader::File_Format; use init_reader::File_Format;
use wikidata_to_surrealdb::utils::*; use wikidata_to_surrealdb::utils::*;
async fn inti_db() -> Result<Surreal<Db>, Error> { async fn inti_db() -> Result<Surreal<Db>, Error> {
env::set_var("WIKIDATA_LANG", "en"); unsafe { env::set_var("WIKIDATA_LANG", "en") };
env::set_var("OVERWRITE_DB", "true"); unsafe { env::set_var("OVERWRITE_DB", "true") };
let db = init_db::create_db_mem().await?; let db = init_db::create_db_mem().await?;

30
flake.lock generated
View file

@ -3,11 +3,11 @@
"advisory-db": { "advisory-db": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1739520703, "lastModified": 1740407442,
"narHash": "sha256-UqR1f9gThWNBCBobWet7T46vTSxkB6dVAdeqNBoF8mc=", "narHash": "sha256-EGzWKm5cUDDJbwVzxSB4N/+CIVycwOG60Gh5f1Vp7JM=",
"owner": "rustsec", "owner": "rustsec",
"repo": "advisory-db", "repo": "advisory-db",
"rev": "ddccfe8aced779f7b54d27bbe7e122ecb1dda33a", "rev": "2e25d9665f10de885c81a9fb9d51a289f625b05f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -18,11 +18,11 @@
}, },
"crane": { "crane": {
"locked": { "locked": {
"lastModified": 1739815359, "lastModified": 1739936662,
"narHash": "sha256-mjB72/7Fgk5bsIIKA4G9LkIb/u0Ci+VdOyQSgBuQtjo=", "narHash": "sha256-x4syUjNUuRblR07nDPeLDP7DpphaBVbUaSoeZkFbGSk=",
"owner": "ipetkov", "owner": "ipetkov",
"repo": "crane", "repo": "crane",
"rev": "282159b2b0588b87a9dbcc40decc91dd5bed5c89", "rev": "19de14aaeb869287647d9461cbd389187d8ecdb7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -39,11 +39,11 @@
"rust-analyzer-src": "rust-analyzer-src" "rust-analyzer-src": "rust-analyzer-src"
}, },
"locked": { "locked": {
"lastModified": 1739774189, "lastModified": 1740897281,
"narHash": "sha256-ZupCPljRian/MbkNdwsfMOePRwd6OATKxp/45DE3EL0=", "narHash": "sha256-lUCeMKV8sUn8Y4R+4OzFMqH0k00KqvbIu0vSIMsWpH0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "fenix", "repo": "fenix",
"rev": "6b5b5f59f75aa4743fe4c150acf7cb8f8cabf787", "rev": "2a4bbf46e00e06967f55b3a55a685d2039f2b572",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -72,11 +72,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1739742245, "lastModified": 1740791350,
"narHash": "sha256-oAgAV4fLWMIPqsEyZVVdk7c0SUdDOV1E7Epq0EIUQs4=", "narHash": "sha256-igS2Z4tVw5W/x3lCZeeadt0vcU9fxtetZ/RyrqsCRQ0=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "f0204ef4baa3b6317dee1c84ddeffbd293638836", "rev": "199169a2135e6b864a888e89a2ace345703c025d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -98,11 +98,11 @@
"rust-analyzer-src": { "rust-analyzer-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1739797572, "lastModified": 1740851167,
"narHash": "sha256-mNGd6sO4U2xpFl3yiivhJrzfxtQUri+FCi0lcYDE7HU=", "narHash": "sha256-sFRsGYrI2Z4X+P9jkvb7XZJG6DImVhz8BSELBT2mLdo=",
"owner": "rust-lang", "owner": "rust-lang",
"repo": "rust-analyzer", "repo": "rust-analyzer",
"rev": "d10388096e2e02dbe3836460ba59930397d6c1e7", "rev": "76567ee28dacac2636aeb6e5b6a9560ffca21d87",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -44,11 +44,8 @@
fpc.rustc fpc.rustc
fpc.clippy fpc.clippy
fpc.rust-src fpc.rust-src
fpc.rustc
fpc.rustfmt fpc.rustfmt
fpc.rustc-codegen-cranelift-preview fpc.rustc-codegen-cranelift-preview
fp.targets.wasm32-unknown-unknown.latest.rust-std
]) ])
) )
); );
@ -80,6 +77,7 @@
++ lib.optionals pkgs.stdenv.isDarwin [ ++ lib.optionals pkgs.stdenv.isDarwin [
# Additional darwin specific inputs can be set here # Additional darwin specific inputs can be set here
pkgs.libiconv pkgs.libiconv
pkgs.darwin.apple_sdk.frameworks.SystemConfiguration
]; ];
# Additional environment variables can be set directly # Additional environment variables can be set directly

40
justfile Normal file
View file

@ -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

View file

@ -1,10 +1,10 @@
use anyhow::{Error, Ok, Result}; use anyhow::{Error, Ok, Result};
use std::env; use std::env;
use surrealdb::{engine::remote::http::Client, Surreal}; use surrealdb::{Surreal, engine::remote::http::Client};
use tokio::{ use tokio::{
fs, fs,
sync::OnceCell, sync::OnceCell,
time::{sleep, Duration}, time::{Duration, sleep},
}; };
mod utils; mod utils;
use init_reader::File_Format; use init_reader::File_Format;

View file

@ -3,8 +3,8 @@ use backon::Retryable;
use core::panic; use core::panic;
use futures::future::join_all; use futures::future::join_all;
use indicatif::ProgressBar; use indicatif::ProgressBar;
use rand::{distributions::Alphanumeric, Rng}; use rand::{Rng, distributions::Alphanumeric};
use serde_json::{from_str, Value}; use serde_json::{Value, from_str};
use std::{env, io::BufRead}; use std::{env, io::BufRead};
use surrealdb::{Connection, Surreal}; use surrealdb::{Connection, Surreal};
use tokio::sync::OnceCell; use tokio::sync::OnceCell;
@ -158,7 +158,7 @@ impl CreateVersion {
.bind(("lexeme_vec", lexeme_vec)) .bind(("lexeme_vec", lexeme_vec))
.await?; .await?;
if let Some(ref p) = pb { if let Some(p) = pb {
p.inc(batch_size as u64) p.inc(batch_size as u64)
} }
Ok(()) Ok(())
@ -192,7 +192,7 @@ impl CreateVersion {
tokio::fs::remove_file(&file_path).await?; tokio::fs::remove_file(&file_path).await?;
if let Some(ref p) = pb { if let Some(p) = pb {
p.inc(batch_size as u64) p.inc(batch_size as u64)
} }
Ok(()) Ok(())

View file

@ -2,12 +2,12 @@ use anyhow::Error;
use anyhow::Result; use anyhow::Result;
use std::env; use std::env;
use surrealdb::{ use surrealdb::{
Surreal,
engine::{ engine::{
local::{Db, Mem}, local::{Db, Mem},
remote::http::{Client, Http}, remote::http::{Client, Http},
}, },
opt::auth::Root, opt::auth::Root,
Surreal,
}; };
use tokio::sync::OnceCell; use tokio::sync::OnceCell;

View file

@ -1,13 +1,13 @@
use anyhow::{Error, Ok, Result}; use anyhow::{Error, Ok, Result};
use rstest::rstest; use rstest::rstest;
use std::{env, io::BufRead}; use std::{env, io::BufRead};
use surrealdb::{engine::local::Db, Surreal}; use surrealdb::{Surreal, engine::local::Db};
use init_reader::File_Format; use init_reader::File_Format;
use wikidata_to_surrealdb::utils::*; use wikidata_to_surrealdb::utils::*;
async fn inti_db() -> Result<Surreal<Db>, Error> { async fn inti_db() -> Result<Surreal<Db>, Error> {
env::set_var("WIKIDATA_LANG", "en"); unsafe { env::set_var("WIKIDATA_LANG", "en") };
let db = init_db::create_db_mem().await?; let db = init_db::create_db_mem().await?;
@ -55,7 +55,7 @@ async fn entity_threaded(#[case] version: CreateVersion) -> Result<(), Error> {
#[tokio::test] #[tokio::test]
async fn entity_threaded_filter() -> Result<(), Error> { 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 db = inti_db().await?;
let reader = init_reader("json", "bench").await; let reader = init_reader("json", "bench").await;