perf: chunks should be faster now
This commit is contained in:
parent
c050084501
commit
95df70c448
378
Cargo.lock
generated
378
Cargo.lock
generated
@ -102,9 +102,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "async-compression"
|
name = "async-compression"
|
||||||
version = "0.4.41"
|
version = "0.4.42"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d0f9ee0f6e02ffd7ad5816e9464499fba7b3effd01123b515c41d1697c43dad1"
|
checksum = "e79b3f8a79cccc2898f31920fc69f304859b3bd567490f75ebf51ae1c792a9ac"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"compression-codecs",
|
"compression-codecs",
|
||||||
"compression-core",
|
"compression-core",
|
||||||
@ -229,15 +229,6 @@ version = "2.11.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3"
|
checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "bitmaps"
|
|
||||||
version = "2.1.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2"
|
|
||||||
dependencies = [
|
|
||||||
"typenum",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "block-buffer"
|
name = "block-buffer"
|
||||||
version = "0.10.4"
|
version = "0.10.4"
|
||||||
@ -326,7 +317,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "d8144c22e24bbcf26ade86cb6501a0916c46b7e4787abdb0045a467eb1645a1d"
|
checksum = "d8144c22e24bbcf26ade86cb6501a0916c46b7e4787abdb0045a467eb1645a1d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ambient-authority",
|
"ambient-authority",
|
||||||
"rand 0.8.5",
|
"rand 0.8.6",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -363,9 +354,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cc"
|
name = "cc"
|
||||||
version = "1.2.60"
|
version = "1.2.61"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "43c5703da9466b66a946814e1adf53ea2c90f10063b86290cc9eb67ce3478a20"
|
checksum = "d16d90359e986641506914ba71350897565610e87ce0ad9e6f28569db3dd5c6d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"find-msvc-tools",
|
"find-msvc-tools",
|
||||||
"jobserver",
|
"jobserver",
|
||||||
@ -508,9 +499,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "compression-codecs"
|
name = "compression-codecs"
|
||||||
version = "0.4.37"
|
version = "0.4.38"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "eb7b51a7d9c967fc26773061ba86150f19c50c0d65c887cb1fbe295fd16619b7"
|
checksum = "ce2548391e9c1929c21bf6aa2680af86fe4c1b33e6cea9ac1cfeec0bd11218cf"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"compression-core",
|
"compression-core",
|
||||||
"flate2",
|
"flate2",
|
||||||
@ -518,9 +509,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "compression-core"
|
name = "compression-core"
|
||||||
version = "0.4.31"
|
version = "0.4.32"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "75984efb6ed102a0d42db99afb6c1948f0380d1d91808d5529916e6c08b49d8d"
|
checksum = "cc14f565cf027a105f7a44ccf9e5b424348421a1d8952a8fc9d499d313107789"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "console-api"
|
name = "console-api"
|
||||||
@ -644,27 +635,27 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cranelift-assembler-x64"
|
name = "cranelift-assembler-x64"
|
||||||
version = "0.130.1"
|
version = "0.131.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "046d4b584c3bb9b5eb500c8f29549bec36be11000f1ba2a927cef3d1a9875691"
|
checksum = "6edb5bdd1af46714e3224a017fabbbd57f70df4e840eb5ad6a7429dc456119d6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cranelift-assembler-x64-meta",
|
"cranelift-assembler-x64-meta",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cranelift-assembler-x64-meta"
|
name = "cranelift-assembler-x64-meta"
|
||||||
version = "0.130.1"
|
version = "0.131.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b9b194a7870becb1490366fc0ae392ccd188065ff35f8391e77ac659db6fb977"
|
checksum = "a819599186e1b1a1f88d464e06045696afc7aa3e0cc018aa0b2999cb63d1d088"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cranelift-srcgen",
|
"cranelift-srcgen",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cranelift-bforest"
|
name = "cranelift-bforest"
|
||||||
version = "0.130.1"
|
version = "0.131.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "bb6a4ab44c6b371e661846b97dab687387a60ac4e2f864e2d4257284aad9e889"
|
checksum = "36e2c152d488e03c87b913bc2ed3414416eb1e0d66d61b49af60bf456a9665c7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cranelift-entity",
|
"cranelift-entity",
|
||||||
"wasmtime-internal-core",
|
"wasmtime-internal-core",
|
||||||
@ -672,9 +663,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cranelift-bitset"
|
name = "cranelift-bitset"
|
||||||
version = "0.130.1"
|
version = "0.131.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b8b7a44150c2f471a94023482bda1902710746e4bed9f9973d60c5a94319b06d"
|
checksum = "b6559d4fbc253d1396e1f6beeae57fa88a244f02aaf0cde2a735afd3492d9b2e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
"serde_derive",
|
"serde_derive",
|
||||||
@ -683,9 +674,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cranelift-codegen"
|
name = "cranelift-codegen"
|
||||||
version = "0.130.1"
|
version = "0.131.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "01b06598133b1dd76758b8b95f8d6747c124124aade50cea96a3d88b962da9fa"
|
checksum = "96d9315d98d6e0a64454d4c83be2ee0e8055c3f80c3b2d7bcad7079f281a06ff"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bumpalo",
|
"bumpalo",
|
||||||
"cranelift-assembler-x64",
|
"cranelift-assembler-x64",
|
||||||
@ -711,9 +702,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cranelift-codegen-meta"
|
name = "cranelift-codegen-meta"
|
||||||
version = "0.130.1"
|
version = "0.131.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "6190e2e7bcf0a678da2f715363d34ed530fedf7a2f0ab75edaefef72a70465ff"
|
checksum = "d89c00a88081c55e3087c45bebc77e0cc973de2d7b44ef6a943c7122647b89f5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cranelift-assembler-x64-meta",
|
"cranelift-assembler-x64-meta",
|
||||||
"cranelift-codegen-shared",
|
"cranelift-codegen-shared",
|
||||||
@ -724,24 +715,24 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cranelift-codegen-shared"
|
name = "cranelift-codegen-shared"
|
||||||
version = "0.130.1"
|
version = "0.131.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f583cf203d1aa8b79560e3b01f929bdacf9070b015eec4ea9c46e22a3f83e4a0"
|
checksum = "879f77c497a1eb6273482aa1ac3b23cb8563ff04edb39ed5dfcfd28c8deff8f5"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cranelift-control"
|
name = "cranelift-control"
|
||||||
version = "0.130.1"
|
version = "0.131.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "803159df35cc398ae54473c150b16d6c77e92ab2948be638488de126a3328fbc"
|
checksum = "498dc1f17a6910c88316d49c7176d8fa97cf10c30859c32a266040449317f963"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arbitrary",
|
"arbitrary",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cranelift-entity"
|
name = "cranelift-entity"
|
||||||
version = "0.130.1"
|
version = "0.131.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3109e417257082d88087f5bcce677525bdaa8322b88dd7f175ed1a1fd41d546c"
|
checksum = "c2acba797f6a46042ce82aaf7680d0c3567fe2001e238db9df649fd104a2727f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cranelift-bitset",
|
"cranelift-bitset",
|
||||||
"serde",
|
"serde",
|
||||||
@ -751,9 +742,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cranelift-frontend"
|
name = "cranelift-frontend"
|
||||||
version = "0.130.1"
|
version = "0.131.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "14db6b0e0e4994c581092df78d837be2072578f7cb2528f96a6cf895e56dee63"
|
checksum = "4dca3df1d107d98d88f159ad1d5eaa2d5cdb678b3d5bcfadc6fc83d8ebb448ea"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cranelift-codegen",
|
"cranelift-codegen",
|
||||||
"log",
|
"log",
|
||||||
@ -763,15 +754,15 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cranelift-isle"
|
name = "cranelift-isle"
|
||||||
version = "0.130.1"
|
version = "0.131.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ec66ea5025c7317383699778282ac98741d68444f956e3b1d7b62f12b7216e67"
|
checksum = "f62dd18116d88bed649871feceda79dad7b59cc685ea8998c2b3e64d0e689602"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cranelift-native"
|
name = "cranelift-native"
|
||||||
version = "0.130.1"
|
version = "0.131.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "373ade56438e6232619d85678477d0a88a31b3581936e0503e61e96b546b0800"
|
checksum = "f843b80360d7fdf61a6124642af7597f6d55724cf521210c34af8a1c66daca6e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cranelift-codegen",
|
"cranelift-codegen",
|
||||||
"libc",
|
"libc",
|
||||||
@ -780,9 +771,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cranelift-srcgen"
|
name = "cranelift-srcgen"
|
||||||
version = "0.130.1"
|
version = "0.131.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ef53619d3cd5c78fd998c6d9420547af26b72e6456f94c2a8a2334cb76b42baa"
|
checksum = "090ee5de58c6f17eb5e3a5ae8cf1695c7efea04ec4dd0ecba6a5b996c9bad7dc"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "crc-fast"
|
name = "crc-fast"
|
||||||
@ -1581,12 +1572,6 @@ version = "0.5.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "hermit-abi"
|
|
||||||
version = "0.5.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hkdf"
|
name = "hkdf"
|
||||||
version = "0.12.4"
|
version = "0.12.4"
|
||||||
@ -1676,9 +1661,9 @@ checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hybrid-array"
|
name = "hybrid-array"
|
||||||
version = "0.4.10"
|
version = "0.4.11"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3944cf8cf766b40e2a1a333ee5e9b563f854d5fa49d6a8ca2764e97c6eddb214"
|
checksum = "08d46837a0ed51fe95bd3b05de33cd64a1ee88fc797477ca48446872504507c5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"typenum",
|
"typenum",
|
||||||
]
|
]
|
||||||
@ -1871,20 +1856,6 @@ dependencies = [
|
|||||||
"icu_properties",
|
"icu_properties",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "im-rc"
|
|
||||||
version = "15.1.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "af1955a75fa080c677d3972822ec4bad316169ab1cfc6c257a942c2265dbe5fe"
|
|
||||||
dependencies = [
|
|
||||||
"bitmaps",
|
|
||||||
"rand_core 0.6.4",
|
|
||||||
"rand_xoshiro",
|
|
||||||
"sized-chunks",
|
|
||||||
"typenum",
|
|
||||||
"version_check",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "indexmap"
|
name = "indexmap"
|
||||||
version = "2.14.0"
|
version = "2.14.0"
|
||||||
@ -2040,9 +2011,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "leb128"
|
name = "leb128"
|
||||||
version = "0.2.5"
|
version = "0.2.6"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67"
|
checksum = "6cc46bac87ef8093eed6f272babb833b6443374399985ac8ed28471ee0918545"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "leb128fmt"
|
name = "leb128fmt"
|
||||||
@ -2052,9 +2023,9 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libc"
|
name = "libc"
|
||||||
version = "0.2.185"
|
version = "0.2.186"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "52ff2c0fe9bc6cb6b14a0592c2ff4fa9ceb83eea9db979b0487cd054946a2b8f"
|
checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libloading"
|
name = "libloading"
|
||||||
@ -2363,16 +2334,6 @@ dependencies = [
|
|||||||
"autocfg",
|
"autocfg",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "num_cpus"
|
|
||||||
version = "1.17.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b"
|
|
||||||
dependencies = [
|
|
||||||
"hermit-abi",
|
|
||||||
"libc",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "num_threads"
|
name = "num_threads"
|
||||||
version = "0.1.7"
|
version = "0.1.7"
|
||||||
@ -2403,12 +2364,12 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "object"
|
name = "object"
|
||||||
version = "0.38.1"
|
version = "0.39.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "271638cd5fa9cca89c4c304675ca658efc4e64a66c716b7cfe1afb4b9611dbbc"
|
checksum = "2e5a6c098c7a3b6547378093f5cc30bc54fd361ce711e05293a5cc589562739b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"crc32fast",
|
"crc32fast",
|
||||||
"hashbrown 0.16.1",
|
"hashbrown 0.17.0",
|
||||||
"indexmap",
|
"indexmap",
|
||||||
"memchr",
|
"memchr",
|
||||||
]
|
]
|
||||||
@ -2803,9 +2764,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pulley-interpreter"
|
name = "pulley-interpreter"
|
||||||
version = "43.0.1"
|
version = "44.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "010dec3755eb61b2f1051ecb3611b718460b7a74c131e474de2af20a845938af"
|
checksum = "df866b7fd522992ccc6682e58b2741cc7972b163b661db24c4328f4c914cb09d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cranelift-bitset",
|
"cranelift-bitset",
|
||||||
"log",
|
"log",
|
||||||
@ -2815,9 +2776,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pulley-macros"
|
name = "pulley-macros"
|
||||||
version = "43.0.1"
|
version = "44.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ad360c32e85ca4b083ac0e2b6856e8f11c3d5060dafa7d5dc57b370857fa3018"
|
checksum = "f7dfa8354acc622b3857e1bb1a4e4315d3bc1a44ad31d5653c3e87c0da9306d7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@ -2840,7 +2801,6 @@ dependencies = [
|
|||||||
"libloading",
|
"libloading",
|
||||||
"notify",
|
"notify",
|
||||||
"num-bigint",
|
"num-bigint",
|
||||||
"num_cpus",
|
|
||||||
"ordered-float",
|
"ordered-float",
|
||||||
"pkcs8 0.11.0-rc.11",
|
"pkcs8 0.11.0-rc.11",
|
||||||
"postcard",
|
"postcard",
|
||||||
@ -3033,7 +2993,6 @@ dependencies = [
|
|||||||
"futures",
|
"futures",
|
||||||
"itertools 0.14.0",
|
"itertools 0.14.0",
|
||||||
"lz4-java-wrc",
|
"lz4-java-wrc",
|
||||||
"num_cpus",
|
|
||||||
"pumpkin-config",
|
"pumpkin-config",
|
||||||
"pumpkin-data",
|
"pumpkin-data",
|
||||||
"pumpkin-nbt",
|
"pumpkin-nbt",
|
||||||
@ -3088,9 +3047,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rand"
|
name = "rand"
|
||||||
version = "0.8.5"
|
version = "0.8.6"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
|
checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
"rand_chacha",
|
"rand_chacha",
|
||||||
@ -3133,15 +3092,6 @@ version = "0.10.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69"
|
checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "rand_xoshiro"
|
|
||||||
version = "0.6.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa"
|
|
||||||
dependencies = [
|
|
||||||
"rand_core 0.6.4",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rayon"
|
name = "rayon"
|
||||||
version = "1.12.0"
|
version = "1.12.0"
|
||||||
@ -3336,9 +3286,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustls"
|
name = "rustls"
|
||||||
version = "0.23.38"
|
version = "0.23.39"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "69f9466fb2c14ea04357e91413efb882e2a6d4a406e625449bc0a5d360d53a21"
|
checksum = "7c2c118cb077cca2822033836dfb1b975355dfb784b5e8da48f7b6c5db74e60e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log",
|
"log",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
@ -3351,18 +3301,18 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustls-pki-types"
|
name = "rustls-pki-types"
|
||||||
version = "1.14.0"
|
version = "1.14.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd"
|
checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"zeroize",
|
"zeroize",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustls-webpki"
|
name = "rustls-webpki"
|
||||||
version = "0.103.12"
|
version = "0.103.13"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8279bb85272c9f10811ae6a6c547ff594d6a7f3c6c6b02ee9726d1d0dcfcdd06"
|
checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ring",
|
"ring",
|
||||||
"rustls-pki-types",
|
"rustls-pki-types",
|
||||||
@ -3405,12 +3355,6 @@ dependencies = [
|
|||||||
"twox-hash 2.1.2",
|
"twox-hash 2.1.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "ryu"
|
|
||||||
version = "1.0.23"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "same-file"
|
name = "same-file"
|
||||||
version = "1.0.6"
|
version = "1.0.6"
|
||||||
@ -3513,19 +3457,6 @@ dependencies = [
|
|||||||
"serde_core",
|
"serde_core",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "serde_yaml"
|
|
||||||
version = "0.9.34+deprecated"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
|
|
||||||
dependencies = [
|
|
||||||
"indexmap",
|
|
||||||
"itoa",
|
|
||||||
"ryu",
|
|
||||||
"serde",
|
|
||||||
"unsafe-libyaml",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serdect"
|
name = "serdect"
|
||||||
version = "0.4.2"
|
version = "0.4.2"
|
||||||
@ -3626,16 +3557,6 @@ version = "1.0.2"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e"
|
checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "sized-chunks"
|
|
||||||
version = "0.6.5"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e"
|
|
||||||
dependencies = [
|
|
||||||
"bitmaps",
|
|
||||||
"typenum",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "slab"
|
name = "slab"
|
||||||
version = "0.4.12"
|
version = "0.4.12"
|
||||||
@ -3925,9 +3846,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tokio"
|
name = "tokio"
|
||||||
version = "1.52.0"
|
version = "1.52.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a91135f59b1cbf38c91e73cf3386fca9bb77915c45ce2771460c9d92f0f3d776"
|
checksum = "b67dee974fe86fd92cc45b7a95fdd2f99a36a6d7b0d431a231178d3d670bbcc6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bytes",
|
"bytes",
|
||||||
"libc",
|
"libc",
|
||||||
@ -4003,7 +3924,7 @@ dependencies = [
|
|||||||
"toml_datetime 1.1.1+spec-1.1.0",
|
"toml_datetime 1.1.1+spec-1.1.0",
|
||||||
"toml_parser",
|
"toml_parser",
|
||||||
"toml_writer",
|
"toml_writer",
|
||||||
"winnow 1.0.1",
|
"winnow 1.0.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -4030,7 +3951,7 @@ version = "1.1.2+spec-1.1.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526"
|
checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"winnow 1.0.1",
|
"winnow 1.0.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -4209,9 +4130,9 @@ checksum = "9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "typenum"
|
name = "typenum"
|
||||||
version = "1.19.0"
|
version = "1.20.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
|
checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ucd-trie"
|
name = "ucd-trie"
|
||||||
@ -4243,12 +4164,6 @@ version = "0.2.6"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
|
checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "unsafe-libyaml"
|
|
||||||
version = "0.2.11"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "untrusted"
|
name = "untrusted"
|
||||||
version = "0.9.0"
|
version = "0.9.0"
|
||||||
@ -4369,11 +4284,11 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasip2"
|
name = "wasip2"
|
||||||
version = "1.0.2+wasi-0.2.9"
|
version = "1.0.3+wasi-0.2.9"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
|
checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"wit-bindgen 0.51.0",
|
"wit-bindgen 0.57.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -4432,22 +4347,18 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasm-compose"
|
name = "wasm-compose"
|
||||||
version = "0.245.1"
|
version = "0.246.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5fd23d12cc95c451c1306db5bc63075fbebb612bb70c53b4237b1ce5bc178343"
|
checksum = "f05a2b3bad87cc1ce45b63425ec09a854cc4cb369231c9fed1fee31538103efb"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"heck",
|
"heck",
|
||||||
"im-rc",
|
|
||||||
"indexmap",
|
"indexmap",
|
||||||
"log",
|
"log",
|
||||||
"petgraph",
|
"petgraph",
|
||||||
"serde",
|
|
||||||
"serde_derive",
|
|
||||||
"serde_yaml",
|
|
||||||
"smallvec",
|
"smallvec",
|
||||||
"wasm-encoder 0.245.1",
|
"wasm-encoder 0.246.2",
|
||||||
"wasmparser 0.245.1",
|
"wasmparser 0.246.2",
|
||||||
"wat",
|
"wat",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -4461,16 +4372,6 @@ dependencies = [
|
|||||||
"wasmparser 0.244.0",
|
"wasmparser 0.244.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "wasm-encoder"
|
|
||||||
version = "0.245.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "3f9dca005e69bf015e45577e415b9af8c67e8ee3c0e38b5b0add5aa92581ed5c"
|
|
||||||
dependencies = [
|
|
||||||
"leb128fmt",
|
|
||||||
"wasmparser 0.245.1",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasm-encoder"
|
name = "wasm-encoder"
|
||||||
version = "0.246.2"
|
version = "0.246.2"
|
||||||
@ -4529,9 +4430,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasmparser"
|
name = "wasmparser"
|
||||||
version = "0.245.1"
|
version = "0.246.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4f08c9adee0428b7bddf3890fc27e015ac4b761cc608c822667102b8bfd6995e"
|
checksum = "71cde4757396defafd25417cfb36aa3161027d06d865b0c24baaae229aac005d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags 2.11.1",
|
"bitflags 2.11.1",
|
||||||
"hashbrown 0.16.1",
|
"hashbrown 0.16.1",
|
||||||
@ -4540,17 +4441,6 @@ dependencies = [
|
|||||||
"serde",
|
"serde",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "wasmparser"
|
|
||||||
version = "0.246.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "71cde4757396defafd25417cfb36aa3161027d06d865b0c24baaae229aac005d"
|
|
||||||
dependencies = [
|
|
||||||
"bitflags 2.11.1",
|
|
||||||
"indexmap",
|
|
||||||
"semver",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasmparser"
|
name = "wasmparser"
|
||||||
version = "0.247.0"
|
version = "0.247.0"
|
||||||
@ -4566,20 +4456,20 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasmprinter"
|
name = "wasmprinter"
|
||||||
version = "0.245.1"
|
version = "0.246.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5f41517a3716fbb8ccf46daa9c1325f760fcbff5168e75c7392288e410b91ac8"
|
checksum = "6e41f7493ba994b8a779430a4c25ff550fd5a40d291693af43a6ef48688f00e3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"termcolor",
|
"termcolor",
|
||||||
"wasmparser 0.245.1",
|
"wasmparser 0.246.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasmtime"
|
name = "wasmtime"
|
||||||
version = "43.0.1"
|
version = "44.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ce205cd643d661b5ba5ba4717e13730262e8cdbc8f2eacbc7b906d45c1a74026"
|
checksum = "fca3f777dfb4db45915f95eeb25cac7f2eeb268797a27e5eb78b072618135c7f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"addr2line",
|
"addr2line",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
@ -4610,8 +4500,8 @@ dependencies = [
|
|||||||
"target-lexicon",
|
"target-lexicon",
|
||||||
"tempfile",
|
"tempfile",
|
||||||
"wasm-compose",
|
"wasm-compose",
|
||||||
"wasm-encoder 0.245.1",
|
"wasm-encoder 0.246.2",
|
||||||
"wasmparser 0.245.1",
|
"wasmparser 0.246.2",
|
||||||
"wasmtime-environ",
|
"wasmtime-environ",
|
||||||
"wasmtime-internal-cache",
|
"wasmtime-internal-cache",
|
||||||
"wasmtime-internal-component-macro",
|
"wasmtime-internal-component-macro",
|
||||||
@ -4630,9 +4520,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasmtime-environ"
|
name = "wasmtime-environ"
|
||||||
version = "43.0.1"
|
version = "44.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0b8b78abf3677d4a0a5db82e5015b4d085ff3a1b8b472cbb8c70d4b769f019ce"
|
checksum = "7c5ca1af838cec374931242d07af5d354aedf63f297f95b3625ac863e516ef67"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"cpp_demangle",
|
"cpp_demangle",
|
||||||
@ -4652,8 +4542,8 @@ dependencies = [
|
|||||||
"sha2 0.10.9",
|
"sha2 0.10.9",
|
||||||
"smallvec",
|
"smallvec",
|
||||||
"target-lexicon",
|
"target-lexicon",
|
||||||
"wasm-encoder 0.245.1",
|
"wasm-encoder 0.246.2",
|
||||||
"wasmparser 0.245.1",
|
"wasmparser 0.246.2",
|
||||||
"wasmprinter",
|
"wasmprinter",
|
||||||
"wasmtime-internal-component-util",
|
"wasmtime-internal-component-util",
|
||||||
"wasmtime-internal-core",
|
"wasmtime-internal-core",
|
||||||
@ -4661,9 +4551,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasmtime-internal-cache"
|
name = "wasmtime-internal-cache"
|
||||||
version = "43.0.1"
|
version = "44.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8e4fd4103ba413c0da2e636f73490c6c8e446d708cbde7573703941bc3d6a448"
|
checksum = "b2004f7c86ebeb116550655377cdf16dbf7b03ae5aa6b4b1c1458cfa23aaa306"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64 0.22.1",
|
"base64 0.22.1",
|
||||||
"directories-next",
|
"directories-next",
|
||||||
@ -4681,9 +4571,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasmtime-internal-component-macro"
|
name = "wasmtime-internal-component-macro"
|
||||||
version = "43.0.1"
|
version = "44.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0d3d6914f34be2f9d78d8ee9f422e834dfc204e71ccce697205fae95fed87892"
|
checksum = "58b31927f7b613d8fe019609744e226f6458d8aa5e6289e92fbbc60e521cd026"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
@ -4691,20 +4581,20 @@ dependencies = [
|
|||||||
"syn",
|
"syn",
|
||||||
"wasmtime-internal-component-util",
|
"wasmtime-internal-component-util",
|
||||||
"wasmtime-internal-wit-bindgen",
|
"wasmtime-internal-wit-bindgen",
|
||||||
"wit-parser 0.245.1",
|
"wit-parser 0.246.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasmtime-internal-component-util"
|
name = "wasmtime-internal-component-util"
|
||||||
version = "43.0.1"
|
version = "44.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3751b0616b914fdd87fe1bf804694a078f321b000338e6476bc48a4d6e454f21"
|
checksum = "dc29e3478928b93979831ba02a997ce7f707c673ce47180d643091cf4fa4f561"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasmtime-internal-core"
|
name = "wasmtime-internal-core"
|
||||||
version = "43.0.1"
|
version = "44.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "22632b187e1b0716f1b9ac57ad29013bed33175fcb19e10bb6896126f82fac67"
|
checksum = "816a61a75275c6be435131fc625a4f5956daf24d9f9f59443e81cbef228929b3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"hashbrown 0.16.1",
|
"hashbrown 0.16.1",
|
||||||
@ -4714,9 +4604,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasmtime-internal-cranelift"
|
name = "wasmtime-internal-cranelift"
|
||||||
version = "43.0.1"
|
version = "44.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8b3ca07b3e0bb3429674b173b5800577719d600774dd81bff58f775c0aaa64ee"
|
checksum = "69ceb5e079877e7e4565c1e2d86d9db889175d55f7ca0001315576d08c71e634"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"cranelift-codegen",
|
"cranelift-codegen",
|
||||||
@ -4732,7 +4622,7 @@ dependencies = [
|
|||||||
"smallvec",
|
"smallvec",
|
||||||
"target-lexicon",
|
"target-lexicon",
|
||||||
"thiserror 2.0.18",
|
"thiserror 2.0.18",
|
||||||
"wasmparser 0.245.1",
|
"wasmparser 0.246.2",
|
||||||
"wasmtime-environ",
|
"wasmtime-environ",
|
||||||
"wasmtime-internal-core",
|
"wasmtime-internal-core",
|
||||||
"wasmtime-internal-unwinder",
|
"wasmtime-internal-unwinder",
|
||||||
@ -4741,9 +4631,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasmtime-internal-fiber"
|
name = "wasmtime-internal-fiber"
|
||||||
version = "43.0.1"
|
version = "44.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "20c8b2c9704eb1f33ead025ec16038277ccb63d0a14c31e99d5b765d7c36da55"
|
checksum = "e18f8bb05d25e0d4cca7278147c9f9e2f26f66886ef754b562bf729128f1e537"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cc",
|
"cc",
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
@ -4756,9 +4646,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasmtime-internal-jit-debug"
|
name = "wasmtime-internal-jit-debug"
|
||||||
version = "43.0.1"
|
version = "44.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d950310d07391d34369f62c48336ebb14eacbd4d6f772bb5f349c24e838e0664"
|
checksum = "357f1070b31154ee463937b477ca0b2962bf450b40fc59799bef2f656b15da73"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cc",
|
"cc",
|
||||||
"object",
|
"object",
|
||||||
@ -4768,9 +4658,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasmtime-internal-jit-icache-coherence"
|
name = "wasmtime-internal-jit-icache-coherence"
|
||||||
version = "43.0.1"
|
version = "44.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3606662c156962d096be3127b8b8ae8ee2f8be3f896dad29259ff01ddb64abfd"
|
checksum = "2fd683a94490bf755d016a09697b0955602c50106b1ded97d16983ab2ded9fed"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"libc",
|
"libc",
|
||||||
@ -4780,9 +4670,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasmtime-internal-unwinder"
|
name = "wasmtime-internal-unwinder"
|
||||||
version = "43.0.1"
|
version = "44.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "75eef0747e52dc545b075f64fd0e0cc237ae738e641266b1970e07e2d744bc32"
|
checksum = "4471746ce113c3c1862ce2c0674acb35399a4b3ed3ef4531dc087f333c74f064"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"cranelift-codegen",
|
"cranelift-codegen",
|
||||||
@ -4793,9 +4683,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasmtime-internal-versioned-export-macros"
|
name = "wasmtime-internal-versioned-export-macros"
|
||||||
version = "43.0.1"
|
version = "44.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d8b0a5dab02a8fb527f547855ecc0e05f9fdc3d5bd57b8b080349408f9a6cece"
|
checksum = "d6af582ec18b674bf7a17775d6fbfbddfcc143f0edbd89c9c1778239c8aa92ed"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@ -4804,16 +4694,16 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasmtime-internal-winch"
|
name = "wasmtime-internal-winch"
|
||||||
version = "43.0.1"
|
version = "44.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8007342bd12ff400293a817973f7ecd6f1d9a8549a53369a9c1af357166f1f1e"
|
checksum = "d31be8916bb60ea756d2f0ae1f634d9258442aa71e773c893e2f4cead30501b5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cranelift-codegen",
|
"cranelift-codegen",
|
||||||
"gimli",
|
"gimli",
|
||||||
"log",
|
"log",
|
||||||
"object",
|
"object",
|
||||||
"target-lexicon",
|
"target-lexicon",
|
||||||
"wasmparser 0.245.1",
|
"wasmparser 0.246.2",
|
||||||
"wasmtime-environ",
|
"wasmtime-environ",
|
||||||
"wasmtime-internal-cranelift",
|
"wasmtime-internal-cranelift",
|
||||||
"winch-codegen",
|
"winch-codegen",
|
||||||
@ -4821,22 +4711,22 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasmtime-internal-wit-bindgen"
|
name = "wasmtime-internal-wit-bindgen"
|
||||||
version = "43.0.1"
|
version = "44.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7900c3e3c1d6e475bc225d73b02d6d5484815f260022e6964dca9558e50dd01a"
|
checksum = "e2150e63d502ab2d64754e5abe8eb737ae674b7dd4ad53144fd16bbeceaf4a19"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"bitflags 2.11.1",
|
"bitflags 2.11.1",
|
||||||
"heck",
|
"heck",
|
||||||
"indexmap",
|
"indexmap",
|
||||||
"wit-parser 0.245.1",
|
"wit-parser 0.246.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasmtime-wasi"
|
name = "wasmtime-wasi"
|
||||||
version = "43.0.1"
|
version = "44.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ed3e3ddcfad69e9eb025bd19bff70dad45bafe1d6eacd134c0ffdfc4c161d045"
|
checksum = "83f5109b4fd619b9796b9c9901de59d83e3575cd1226c1a36d1901371f43db28"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"bitflags 2.11.1",
|
"bitflags 2.11.1",
|
||||||
@ -4864,9 +4754,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasmtime-wasi-io"
|
name = "wasmtime-wasi-io"
|
||||||
version = "43.0.1"
|
version = "44.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3ca5dd3b9f04a851c422d05f333366722742da46bff9369ae0191f32cf83565a"
|
checksum = "74ebe14c586e98d2fdc32c76ca0005ef28348e98ed737e776d378b3b0cc2afd0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"bytes",
|
"bytes",
|
||||||
@ -4886,24 +4776,24 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wast"
|
name = "wast"
|
||||||
version = "246.0.2"
|
version = "247.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "fe3fe8e3bf88ad96d031b4181ddbd64634b17cb0d06dfc3de589ef43591a9a62"
|
checksum = "579d2d47eb33b0cdf9b14723cb115f1e1b7d6e77aac6f0816e5b7c7aeaa418ff"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bumpalo",
|
"bumpalo",
|
||||||
"leb128fmt",
|
"leb128fmt",
|
||||||
"memchr",
|
"memchr",
|
||||||
"unicode-width",
|
"unicode-width",
|
||||||
"wasm-encoder 0.246.2",
|
"wasm-encoder 0.247.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wat"
|
name = "wat"
|
||||||
version = "1.246.2"
|
version = "1.247.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4bd7fda1199b94fff395c2d19a153f05dbe7807630316fa9673367666fd2ad8c"
|
checksum = "f3f4091c56437e86f2b57fa2fac72c4f528957a605b3f44f7c0b3b19a17ac5ee"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"wast 246.0.2",
|
"wast 247.0.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -4917,9 +4807,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wiggle"
|
name = "wiggle"
|
||||||
version = "43.0.1"
|
version = "44.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "cc1b1135efc8e5a008971897bea8d41ca56d8d501d4efb807842ae0a1c78f639"
|
checksum = "89cff414ef7dce0cc1cf8a033ff80d3f38e3987c37e3efeec7926ecb5ffaaae6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags 2.11.1",
|
"bitflags 2.11.1",
|
||||||
"thiserror 2.0.18",
|
"thiserror 2.0.18",
|
||||||
@ -4931,9 +4821,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wiggle-generate"
|
name = "wiggle-generate"
|
||||||
version = "43.0.1"
|
version = "44.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a7bc2b0d50ec8773b44fbfe1da6cb5cc44a92deaf8483233dcf0831e6db33172"
|
checksum = "ccf9dc7272b151a9616a2699e7f94ea1d4ae253b47b63a79fbc8f38e2cca5fa6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"heck",
|
"heck",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
@ -4945,9 +4835,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wiggle-macro"
|
name = "wiggle-macro"
|
||||||
version = "43.0.1"
|
version = "44.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2d6c7d44ea552e1fbfdcd7a2cd83f5c2d1e803d5b1a11e3462c06888b77f455f"
|
checksum = "aa7c29fcf738630cba4e35f1805da5e42dde20ee9809ee9202b0648ae671602f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@ -4988,9 +4878,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "winch-codegen"
|
name = "winch-codegen"
|
||||||
version = "43.0.1"
|
version = "44.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "eb9f45f7172a2628c8317766e427babc0a400f9d10b1c0f0b0617c5ed5b79de6"
|
checksum = "9339858ad222412200fd8b1af9e270712201aaec440c7618991443af3446481f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cranelift-assembler-x64",
|
"cranelift-assembler-x64",
|
||||||
"cranelift-codegen",
|
"cranelift-codegen",
|
||||||
@ -4999,7 +4889,7 @@ dependencies = [
|
|||||||
"smallvec",
|
"smallvec",
|
||||||
"target-lexicon",
|
"target-lexicon",
|
||||||
"thiserror 2.0.18",
|
"thiserror 2.0.18",
|
||||||
"wasmparser 0.245.1",
|
"wasmparser 0.246.2",
|
||||||
"wasmtime-environ",
|
"wasmtime-environ",
|
||||||
"wasmtime-internal-core",
|
"wasmtime-internal-core",
|
||||||
"wasmtime-internal-cranelift",
|
"wasmtime-internal-cranelift",
|
||||||
@ -5288,9 +5178,9 @@ checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "winnow"
|
name = "winnow"
|
||||||
version = "1.0.1"
|
version = "1.0.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5"
|
checksum = "2ee1708bef14716a11bae175f579062d4554d95be2c6829f518df847b7b3fdd0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "winx"
|
name = "winx"
|
||||||
@ -5464,9 +5354,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wit-parser"
|
name = "wit-parser"
|
||||||
version = "0.245.1"
|
version = "0.246.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "330698718e82983499419494dd1e3d7811a457a9bf9f69734e8c5f07a2547929"
|
checksum = "fd979042b5ff288607ccf3b314145435453f20fc67173195f91062d2289b204d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"hashbrown 0.16.1",
|
"hashbrown 0.16.1",
|
||||||
@ -5478,7 +5368,7 @@ dependencies = [
|
|||||||
"serde_derive",
|
"serde_derive",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"unicode-xid",
|
"unicode-xid",
|
||||||
"wasmparser 0.245.1",
|
"wasmparser 0.246.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|||||||
@ -109,7 +109,7 @@ serde_json = "1.0"
|
|||||||
tempfile = { version = "3.27.0", default-features = false }
|
tempfile = { version = "3.27.0", default-features = false }
|
||||||
proc-macro-error2 = "2"
|
proc-macro-error2 = "2"
|
||||||
aes = "0.9"
|
aes = "0.9"
|
||||||
async-compression = "0.4.41"
|
async-compression = "0.4.42"
|
||||||
base64 = "0.22.1"
|
base64 = "0.22.1"
|
||||||
bitflags = "2.11.1"
|
bitflags = "2.11.1"
|
||||||
cesu8 = "1.1"
|
cesu8 = "1.1"
|
||||||
@ -136,7 +136,6 @@ md5 = "0.8"
|
|||||||
num-bigint = "0.4"
|
num-bigint = "0.4"
|
||||||
num-derive = "0.4"
|
num-derive = "0.4"
|
||||||
num-traits = "0.2"
|
num-traits = "0.2"
|
||||||
num_cpus = "1.17.0"
|
|
||||||
p384 = "0.13.1"
|
p384 = "0.13.1"
|
||||||
phf = "0.13.1"
|
phf = "0.13.1"
|
||||||
pkcs8 = "=0.11.0-rc.11"
|
pkcs8 = "=0.11.0-rc.11"
|
||||||
@ -178,8 +177,8 @@ toml = "1.1"
|
|||||||
ureq = "3.3.0"
|
ureq = "3.3.0"
|
||||||
notify = "8.2.0"
|
notify = "8.2.0"
|
||||||
|
|
||||||
wasmtime = "43.0"
|
wasmtime = "44.0"
|
||||||
wasmtime-wasi = "43.0"
|
wasmtime-wasi = "44.0"
|
||||||
wit-bindgen = "0.57"
|
wit-bindgen = "0.57"
|
||||||
wasmparser = "0.247"
|
wasmparser = "0.247"
|
||||||
|
|
||||||
|
|||||||
@ -13,12 +13,12 @@ pub enum ChunkConfig {
|
|||||||
Anvil(AnvilChunkConfig),
|
Anvil(AnvilChunkConfig),
|
||||||
/// Linear chunk storage format.
|
/// Linear chunk storage format.
|
||||||
#[serde(rename = "linear")]
|
#[serde(rename = "linear")]
|
||||||
Linear(LinearChunkConfig),
|
Linear,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for ChunkConfig {
|
impl Default for ChunkConfig {
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
Self::Linear(LinearChunkConfig::default())
|
Self::Anvil(AnvilChunkConfig::default())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -61,19 +61,3 @@ pub enum Compression {
|
|||||||
/// Custom compression algorithm (since 24w05a).
|
/// Custom compression algorithm (since 24w05a).
|
||||||
Custom,
|
Custom,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Configuration for Linear chunk storage.
|
|
||||||
#[derive(Deserialize, Serialize, Default, Clone)]
|
|
||||||
pub struct LinearChunkConfig {
|
|
||||||
/// Version of the Linear format to use.
|
|
||||||
pub linear_version: LinearVersion,
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Versions of the Linear chunk format.
|
|
||||||
#[derive(Deserialize, Serialize, Default, Clone)]
|
|
||||||
pub enum LinearVersion {
|
|
||||||
/// Version 1 (default).
|
|
||||||
#[default]
|
|
||||||
V1,
|
|
||||||
// TODO: V2,
|
|
||||||
}
|
|
||||||
|
|||||||
@ -59,10 +59,10 @@ impl NbtTag {
|
|||||||
/// represents. If any elements in the `Vec` are found to be of
|
/// represents. If any elements in the `Vec` are found to be of
|
||||||
/// different types, this returns [`COMPOUND_ID`].
|
/// different types, this returns [`COMPOUND_ID`].
|
||||||
#[must_use]
|
#[must_use]
|
||||||
fn get_list_element_type_id(vec: &Vec<Self>) -> u8 {
|
fn get_list_element_type_id(list: &[Self]) -> u8 {
|
||||||
let mut element_id = END_ID;
|
let mut element_id = END_ID;
|
||||||
|
|
||||||
for tag in vec {
|
for tag in list {
|
||||||
let id = tag.get_type_id();
|
let id = tag.get_type_id();
|
||||||
if element_id == END_ID {
|
if element_id == END_ID {
|
||||||
element_id = id;
|
element_id = id;
|
||||||
@ -449,9 +449,7 @@ impl From<&str> for NbtTag {
|
|||||||
|
|
||||||
impl From<&[u8]> for NbtTag {
|
impl From<&[u8]> for NbtTag {
|
||||||
fn from(value: &[u8]) -> Self {
|
fn from(value: &[u8]) -> Self {
|
||||||
let mut cloned = Vec::with_capacity(value.len());
|
Self::ByteArray(value.into())
|
||||||
cloned.copy_from_slice(value);
|
|
||||||
Self::ByteArray(cloned.into_boxed_slice())
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -52,7 +52,6 @@ rayon.workspace = true
|
|||||||
|
|
||||||
tokio-util = { workspace = true, features = ["rt"] }
|
tokio-util = { workspace = true, features = ["rt"] }
|
||||||
rand.workspace = true
|
rand.workspace = true
|
||||||
num_cpus.workspace = true
|
|
||||||
rustc-hash.workspace = true
|
rustc-hash.workspace = true
|
||||||
slotmap.workspace = true
|
slotmap.workspace = true
|
||||||
crossfire.workspace = true
|
crossfire.workspace = true
|
||||||
|
|||||||
@ -1,11 +1,10 @@
|
|||||||
use bytes::{Buf, Bytes};
|
use bytes::{Buf, BufMut, Bytes};
|
||||||
use flate2::read::{GzDecoder, GzEncoder, ZlibDecoder, ZlibEncoder};
|
use flate2::read::{GzDecoder, GzEncoder, ZlibDecoder, ZlibEncoder};
|
||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
use lz4_java_wrc::Context;
|
use lz4_java_wrc::Context;
|
||||||
use pumpkin_config::chunk::AnvilChunkConfig;
|
use pumpkin_config::chunk::AnvilChunkConfig;
|
||||||
use pumpkin_util::math::vector2::Vector2;
|
use pumpkin_util::math::vector2::Vector2;
|
||||||
use std::{
|
use std::{
|
||||||
collections::HashSet,
|
|
||||||
io::{Read, SeekFrom, Write},
|
io::{Read, SeekFrom, Write},
|
||||||
marker::PhantomData,
|
marker::PhantomData,
|
||||||
path::{Path, PathBuf},
|
path::{Path, PathBuf},
|
||||||
@ -82,7 +81,7 @@ enum WriteAction {
|
|||||||
// Write the entire file
|
// Write the entire file
|
||||||
All,
|
All,
|
||||||
// Only write certain indices
|
// Only write certain indices
|
||||||
Parts(HashSet<usize>),
|
Parts(Vec<usize>),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WriteAction {
|
impl WriteAction {
|
||||||
@ -91,9 +90,11 @@ impl WriteAction {
|
|||||||
/// If we have All enum, do nothing
|
/// If we have All enum, do nothing
|
||||||
fn maybe_update_chunk_index(&mut self, index: usize) {
|
fn maybe_update_chunk_index(&mut self, index: usize) {
|
||||||
match self {
|
match self {
|
||||||
Self::Pass => *self = Self::Parts(HashSet::from_iter([index])),
|
Self::Pass => *self = Self::Parts(vec![index]),
|
||||||
Self::Parts(parts) => {
|
Self::Parts(parts) => {
|
||||||
let _ = parts.insert(index);
|
if !parts.contains(&index) {
|
||||||
|
parts.push(index);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Self::All => {}
|
Self::All => {}
|
||||||
}
|
}
|
||||||
@ -142,7 +143,7 @@ impl Compression {
|
|||||||
initial_capacity,
|
initial_capacity,
|
||||||
)
|
)
|
||||||
.map_err(CompressionError::LZ4Error),
|
.map_err(CompressionError::LZ4Error),
|
||||||
Self::Custom => todo!(),
|
Self::Custom => Err(CompressionError::UnknownCompression),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -281,8 +282,11 @@ impl AnvilChunkData {
|
|||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
w.write_all(&self.compressed_data).await?;
|
w.write_all(&self.compressed_data).await?;
|
||||||
for _ in 0..(padded_size - self.raw_write_size()) {
|
|
||||||
w.write_u8(0).await?;
|
let padding_len = padded_size - self.raw_write_size();
|
||||||
|
if padding_len > 0 {
|
||||||
|
static PADDING: [u8; SECTOR_BYTES] = [0; SECTOR_BYTES];
|
||||||
|
w.write_all(&PADDING[..padding_len]).await?;
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
@ -361,32 +365,30 @@ impl<S: SingleChunkDataSerializer> AnvilChunkFile<S> {
|
|||||||
|
|
||||||
let mut write = BufWriter::new(file);
|
let mut write = BufWriter::new(file);
|
||||||
// The first two sectors are reserved for the location table
|
// The first two sectors are reserved for the location table
|
||||||
for (index, metadata) in self.chunks_data.iter().enumerate() {
|
let mut header = Vec::with_capacity(SECTOR_BYTES * 2);
|
||||||
|
|
||||||
|
// Location Table
|
||||||
|
for metadata in &self.chunks_data {
|
||||||
if let Some(chunk) = metadata {
|
if let Some(chunk) = metadata {
|
||||||
let chunk_data = &chunk.serialized_data;
|
let sector_count = chunk.serialized_data.sector_count();
|
||||||
let sector_count = chunk_data.sector_count();
|
header.put_u32((chunk.file_sector_offset << 8) | sector_count);
|
||||||
trace!(
|
|
||||||
"Writing position for chunk {} - {}:{}",
|
|
||||||
index, chunk.file_sector_offset, sector_count
|
|
||||||
);
|
|
||||||
write
|
|
||||||
.write_u32((chunk.file_sector_offset << 8) | sector_count)
|
|
||||||
.await?;
|
|
||||||
} else {
|
} else {
|
||||||
// If the chunk is not present, we write 0 to the location and timestamp tables
|
header.put_u32(0);
|
||||||
write.write_u32(0).await?;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Timestamp Table
|
||||||
for metadata in &self.chunks_data {
|
for metadata in &self.chunks_data {
|
||||||
if let Some(chunk) = metadata {
|
if let Some(chunk) = metadata {
|
||||||
write.write_u32(chunk.timestamp).await?;
|
header.put_u32(chunk.timestamp);
|
||||||
} else {
|
} else {
|
||||||
// If the chunk is not present, we write 0 to the location and timestamp tables
|
header.put_u32(0);
|
||||||
write.write_u32(0).await?;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Write all 8 KiB in a single async call
|
||||||
|
write.write_all(&header).await?;
|
||||||
|
|
||||||
let mut chunks = indices
|
let mut chunks = indices
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|index| {
|
.map(|index| {
|
||||||
@ -449,44 +451,42 @@ impl<S: SingleChunkDataSerializer> AnvilChunkFile<S> {
|
|||||||
trace!("Writing tmp file to disk: {temp_path:?}");
|
trace!("Writing tmp file to disk: {temp_path:?}");
|
||||||
|
|
||||||
let file = tokio::fs::File::create(&temp_path).await?;
|
let file = tokio::fs::File::create(&temp_path).await?;
|
||||||
|
|
||||||
let mut write = BufWriter::new(file);
|
let mut write = BufWriter::new(file);
|
||||||
|
|
||||||
// The first two sectors are reserved for the location table
|
// Build the 8 KiB header in memory
|
||||||
|
let mut header = Vec::with_capacity(SECTOR_BYTES * 2);
|
||||||
let mut current_sector: u32 = 2;
|
let mut current_sector: u32 = 2;
|
||||||
|
|
||||||
|
// Location Table
|
||||||
for metadata in &self.chunks_data {
|
for metadata in &self.chunks_data {
|
||||||
if let Some(chunk) = metadata {
|
if let Some(chunk) = metadata {
|
||||||
let chunk = &chunk.serialized_data;
|
let sector_count = chunk.serialized_data.sector_count();
|
||||||
let sector_count = chunk.sector_count();
|
header.put_u32((current_sector << 8) | sector_count);
|
||||||
write
|
|
||||||
.write_u32((current_sector << 8) | sector_count)
|
|
||||||
.await?;
|
|
||||||
current_sector += sector_count;
|
current_sector += sector_count;
|
||||||
} else {
|
} else {
|
||||||
// If the chunk is not present, we write 0 to the location and timestamp tables
|
header.put_u32(0);
|
||||||
write.write_u32(0).await?;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Timestamp Table
|
||||||
for metadata in &self.chunks_data {
|
for metadata in &self.chunks_data {
|
||||||
if let Some(chunk) = metadata {
|
if let Some(chunk) = metadata {
|
||||||
write.write_u32(chunk.timestamp).await?;
|
header.put_u32(chunk.timestamp);
|
||||||
} else {
|
} else {
|
||||||
// If the chunk is not present, we write 0 to the location and timestamp tables
|
header.put_u32(0);
|
||||||
write.write_u32(0).await?;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Write all 8 KiB in a single async call
|
||||||
|
write.write_all(&header).await?;
|
||||||
|
|
||||||
|
// Write chunk data
|
||||||
for chunk in self.chunks_data.iter().flatten() {
|
for chunk in self.chunks_data.iter().flatten() {
|
||||||
chunk.serialized_data.write(&mut write).await?;
|
chunk.serialized_data.write(&mut write).await?;
|
||||||
}
|
}
|
||||||
|
|
||||||
write.flush().await?;
|
write.flush().await?;
|
||||||
// The rename of the file works like an atomic operation ensuring
|
|
||||||
// that the data is not corrupted before the rename is completed
|
|
||||||
tokio::fs::rename(temp_path, path).await?;
|
tokio::fs::rename(temp_path, path).await?;
|
||||||
|
|
||||||
trace!("Wrote file to Disk: {}", path.display());
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,7 +8,6 @@ use crate::chunk::format::anvil::{AnvilChunkFile, SingleChunkDataSerializer};
|
|||||||
use crate::chunk::io::{ChunkSerializer, LoadedData};
|
use crate::chunk::io::{ChunkSerializer, LoadedData};
|
||||||
use crate::chunk::{ChunkReadingError, ChunkWritingError};
|
use crate::chunk::{ChunkReadingError, ChunkWritingError};
|
||||||
use bytes::{Buf, BufMut, Bytes};
|
use bytes::{Buf, BufMut, Bytes};
|
||||||
use pumpkin_config::chunk::LinearChunkConfig;
|
|
||||||
use pumpkin_util::math::vector2::Vector2;
|
use pumpkin_util::math::vector2::Vector2;
|
||||||
use ruzstd::decoding::StreamingDecoder;
|
use ruzstd::decoding::StreamingDecoder;
|
||||||
use ruzstd::encoding::{CompressionLevel, compress_to_vec};
|
use ruzstd::encoding::{CompressionLevel, compress_to_vec};
|
||||||
@ -368,7 +367,7 @@ impl<S: SingleChunkDataSerializer> LinearV2File<S> {
|
|||||||
impl<S: SingleChunkDataSerializer> ChunkSerializer for LinearV2File<S> {
|
impl<S: SingleChunkDataSerializer> ChunkSerializer for LinearV2File<S> {
|
||||||
type Data = S;
|
type Data = S;
|
||||||
type WriteBackend = PathBuf;
|
type WriteBackend = PathBuf;
|
||||||
type ChunkConfig = LinearChunkConfig;
|
type ChunkConfig = ();
|
||||||
|
|
||||||
fn should_write(&self, is_watched: bool) -> bool {
|
fn should_write(&self, is_watched: bool) -> bool {
|
||||||
!is_watched
|
!is_watched
|
||||||
|
|||||||
@ -194,44 +194,6 @@ impl ChunkData {
|
|||||||
.light_populated
|
.light_populated
|
||||||
.load(std::sync::atomic::Ordering::Relaxed);
|
.load(std::sync::atomic::Ordering::Relaxed);
|
||||||
|
|
||||||
let sections = {
|
|
||||||
let light_lock = self.light_engine.lock().unwrap();
|
|
||||||
let block_lock = self.section.block_sections.read().unwrap();
|
|
||||||
let biome_lock = self.section.biome_sections.read().unwrap();
|
|
||||||
let min_section_y = (self.section.min_y >> 4) as i8;
|
|
||||||
|
|
||||||
(0..self.section.count)
|
|
||||||
.map(|i| ChunkSectionNBT {
|
|
||||||
y: i as i8 + min_section_y,
|
|
||||||
block_states: Some(block_lock[i].to_disk_nbt()),
|
|
||||||
biomes: Some(biome_lock[i].to_disk_nbt()),
|
|
||||||
|
|
||||||
block_light: match light_lock.block_light.get(i) {
|
|
||||||
Some(LightContainer::Empty(default)) if *default == 0 => None,
|
|
||||||
Some(LightContainer::Empty(default)) => {
|
|
||||||
let value = (*default << 4) | *default;
|
|
||||||
Some(vec![value; LightContainer::ARRAY_SIZE].into_boxed_slice())
|
|
||||||
}
|
|
||||||
Some(LightContainer::Full(data)) => Some(data.clone()),
|
|
||||||
None => None,
|
|
||||||
},
|
|
||||||
sky_light: match light_lock.sky_light.get(i) {
|
|
||||||
Some(LightContainer::Empty(default)) if *default == 0 => None,
|
|
||||||
Some(LightContainer::Empty(default)) => {
|
|
||||||
let value = (*default << 4) | *default;
|
|
||||||
Some(vec![value; LightContainer::ARRAY_SIZE].into_boxed_slice())
|
|
||||||
}
|
|
||||||
Some(LightContainer::Full(data)) => Some(data.clone()),
|
|
||||||
None => None,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
.collect::<Vec<_>>()
|
|
||||||
};
|
|
||||||
|
|
||||||
// Lock and clone heightmaps
|
|
||||||
let heightmaps = self.heightmap.lock().unwrap().clone();
|
|
||||||
|
|
||||||
// Lock and clone entities
|
|
||||||
let entities_to_serialize = {
|
let entities_to_serialize = {
|
||||||
let entities_guard = self.block_entities.lock().unwrap();
|
let entities_guard = self.block_entities.lock().unwrap();
|
||||||
entities_guard.values().cloned().collect::<Vec<_>>()
|
entities_guard.values().cloned().collect::<Vec<_>>()
|
||||||
@ -246,23 +208,47 @@ impl ChunkData {
|
|||||||
))
|
))
|
||||||
.await;
|
.await;
|
||||||
|
|
||||||
// Build the final NBT
|
fn extract_light_ref(light: Option<&LightContainer>) -> Option<&[u8]> {
|
||||||
let nbt = ChunkNbt {
|
match light {
|
||||||
|
Some(LightContainer::Full(data)) => Some(data.as_ref()),
|
||||||
|
_ => None,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let light_lock = self.light_engine.lock().unwrap();
|
||||||
|
let heightmap_lock = self.heightmap.lock().unwrap();
|
||||||
|
let block_lock = self.section.block_sections.read().unwrap();
|
||||||
|
let biome_lock = self.section.biome_sections.read().unwrap();
|
||||||
|
|
||||||
|
let min_section_y = (self.section.min_y >> 4) as i8;
|
||||||
|
|
||||||
|
let sections = (0..self.section.count)
|
||||||
|
.map(|i| ChunkSectionNbtRef {
|
||||||
|
y: i as i8 + min_section_y,
|
||||||
|
block_states: Some(block_lock[i].to_disk_nbt()),
|
||||||
|
biomes: Some(biome_lock[i].to_disk_nbt()),
|
||||||
|
block_light: extract_light_ref(light_lock.block_light.get(i)),
|
||||||
|
sky_light: extract_light_ref(light_lock.sky_light.get(i)),
|
||||||
|
})
|
||||||
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
|
let nbt_ref = ChunkNbtRef {
|
||||||
data_version: WORLD_DATA_VERSION,
|
data_version: WORLD_DATA_VERSION,
|
||||||
x_pos: self.x,
|
x_pos: self.x,
|
||||||
z_pos: self.z,
|
z_pos: self.z,
|
||||||
min_y_section: section_coords::block_to_section(self.section.min_y),
|
min_y_section: section_coords::block_to_section(self.section.min_y),
|
||||||
status: self.status,
|
status: &self.status,
|
||||||
heightmaps,
|
heightmaps: &heightmap_lock,
|
||||||
sections,
|
sections,
|
||||||
block_ticks: self.block_ticks.to_vec(),
|
block_ticks: &self.block_ticks.to_vec(),
|
||||||
fluid_ticks: self.fluid_ticks.to_vec(),
|
fluid_ticks: &self.fluid_ticks.to_vec(),
|
||||||
block_entities: block_entities_nbt,
|
block_entities: &block_entities_nbt,
|
||||||
light_correct: is_light_correct,
|
light_correct: is_light_correct,
|
||||||
};
|
};
|
||||||
|
|
||||||
let result =
|
let result =
|
||||||
pumpkin_nbt::to_pnbt(&nbt).map_err(ChunkSerializingError::ErrorSerializingChunk)?;
|
pumpkin_nbt::to_pnbt(&nbt_ref).map_err(ChunkSerializingError::ErrorSerializingChunk)?;
|
||||||
|
|
||||||
Ok(result.into())
|
Ok(result.into())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -378,6 +364,20 @@ struct ChunkSectionNBT {
|
|||||||
y: i8,
|
y: i8,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Serialize)]
|
||||||
|
#[serde(rename_all = "PascalCase")]
|
||||||
|
struct ChunkSectionNbtRef<'a> {
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
block_states: Option<ChunkSectionBlockStates>,
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
biomes: Option<ChunkSectionBiomes>,
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
block_light: Option<&'a [u8]>,
|
||||||
|
#[serde(skip_serializing_if = "Option::is_none")]
|
||||||
|
sky_light: Option<&'a [u8]>,
|
||||||
|
y: i8,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, Debug, Clone)]
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
||||||
pub struct ChunkSectionBiomes {
|
pub struct ChunkSectionBiomes {
|
||||||
#[serde(
|
#[serde(
|
||||||
@ -503,6 +503,31 @@ struct ChunkNbt {
|
|||||||
light_correct: bool,
|
light_correct: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Used ONLY for saving (to_bytes). Borrows data, zero clones.
|
||||||
|
#[derive(Serialize)]
|
||||||
|
#[serde(rename_all = "PascalCase")]
|
||||||
|
struct ChunkNbtRef<'a> {
|
||||||
|
data_version: i32,
|
||||||
|
#[serde(rename = "xPos")]
|
||||||
|
x_pos: i32,
|
||||||
|
#[serde(rename = "zPos")]
|
||||||
|
z_pos: i32,
|
||||||
|
#[serde(rename = "yPos")]
|
||||||
|
min_y_section: i32,
|
||||||
|
status: &'a ChunkStatus,
|
||||||
|
#[serde(rename = "sections")]
|
||||||
|
sections: Vec<ChunkSectionNbtRef<'a>>,
|
||||||
|
heightmaps: &'a ChunkHeightmaps,
|
||||||
|
#[serde(rename = "block_ticks")]
|
||||||
|
block_ticks: &'a [ScheduledTick<&'static Block>],
|
||||||
|
#[serde(rename = "fluid_ticks")]
|
||||||
|
fluid_ticks: &'a [ScheduledTick<&'static Fluid>],
|
||||||
|
#[serde(rename = "block_entities")]
|
||||||
|
block_entities: &'a [NbtCompound],
|
||||||
|
#[serde(rename = "isLightOn", default)]
|
||||||
|
light_correct: bool,
|
||||||
|
}
|
||||||
|
|
||||||
use pumpkin_nbt::pnbt::PNbtCompound;
|
use pumpkin_nbt::pnbt::PNbtCompound;
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize)]
|
#[derive(Serialize, Deserialize)]
|
||||||
|
|||||||
@ -134,7 +134,10 @@ impl GenerationSchedule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let max_in_flight = if gen_pool.is_some() {
|
let max_in_flight = if gen_pool.is_some() {
|
||||||
(num_cpus::get() * 4) as u16
|
(thread::available_parallelism()
|
||||||
|
.map(|n| n.get())
|
||||||
|
.unwrap_or(1)
|
||||||
|
* 4) as u16
|
||||||
} else {
|
} else {
|
||||||
gen_thread_count as u16
|
gen_thread_count as u16
|
||||||
};
|
};
|
||||||
|
|||||||
@ -7,7 +7,6 @@ use crate::chunk::io::LoadedData;
|
|||||||
use crate::chunk::io::LoadedData::Loaded;
|
use crate::chunk::io::LoadedData::Loaded;
|
||||||
use crate::level::Level;
|
use crate::level::Level;
|
||||||
use crossfire::compat::AsyncRx;
|
use crossfire::compat::AsyncRx;
|
||||||
use itertools::Itertools;
|
|
||||||
use pumpkin_config::lighting::LightingEngineConfig;
|
use pumpkin_config::lighting::LightingEngineConfig;
|
||||||
use pumpkin_data::chunk::ChunkStatus;
|
use pumpkin_data::chunk::ChunkStatus;
|
||||||
use pumpkin_data::chunk_gen_settings::GenerationSettings;
|
use pumpkin_data::chunk_gen_settings::GenerationSettings;
|
||||||
@ -182,7 +181,10 @@ pub async fn io_write_work(recv: AsyncRx<Vec<(ChunkPos, Chunk)>>, level: Arc<Lev
|
|||||||
};
|
};
|
||||||
// debug!("io write thread receive chunks size {}", data.len());
|
// debug!("io write thread receive chunks size {}", data.len());
|
||||||
let mut vec = Vec::with_capacity(data.len());
|
let mut vec = Vec::with_capacity(data.len());
|
||||||
|
let mut positions = Vec::with_capacity(data.len());
|
||||||
for (pos, chunk) in data {
|
for (pos, chunk) in data {
|
||||||
|
positions.push(pos);
|
||||||
|
|
||||||
match chunk {
|
match chunk {
|
||||||
Chunk::Level(chunk) => vec.push((pos, chunk)),
|
Chunk::Level(chunk) => vec.push((pos, chunk)),
|
||||||
Chunk::Proto(chunk) => {
|
Chunk::Proto(chunk) => {
|
||||||
@ -193,7 +195,6 @@ pub async fn io_write_work(recv: AsyncRx<Vec<(ChunkPos, Chunk)>>, level: Arc<Lev
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let pos = vec.iter().map(|(pos, _)| *pos).collect_vec();
|
|
||||||
if let Err(e) = level
|
if let Err(e) = level
|
||||||
.chunk_saver
|
.chunk_saver
|
||||||
.save_chunks(&level.level_folder, vec)
|
.save_chunks(&level.level_folder, vec)
|
||||||
@ -202,7 +203,7 @@ pub async fn io_write_work(recv: AsyncRx<Vec<(ChunkPos, Chunk)>>, level: Arc<Lev
|
|||||||
error!("Failed to save chunks: {:?}", e);
|
error!("Failed to save chunks: {:?}", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
for i in pos {
|
for i in positions {
|
||||||
let mut data = lock.0.lock().unwrap();
|
let mut data = lock.0.lock().unwrap();
|
||||||
match data.entry(i) {
|
match data.entry(i) {
|
||||||
Entry::Occupied(mut entry) => {
|
Entry::Occupied(mut entry) => {
|
||||||
|
|||||||
@ -45,40 +45,6 @@ impl FluidLevel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[enum_dispatch(FluidLevelSamplerImpl)]
|
|
||||||
pub enum FluidLevelSampler {
|
|
||||||
Static(StaticFluidLevelSampler),
|
|
||||||
Chunk(StandardChunkFluidLevelSampler),
|
|
||||||
}
|
|
||||||
|
|
||||||
impl FluidLevelSamplerImpl for FluidLevelSampler {
|
|
||||||
fn get_fluid_level(&self, x: i32, y: i32, z: i32) -> &FluidLevel {
|
|
||||||
match self {
|
|
||||||
Self::Static(sampler) => sampler.get_fluid_level(x, y, z),
|
|
||||||
Self::Chunk(sampler) => sampler.get_fluid_level(x, y, z),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub struct StaticFluidLevelSampler {
|
|
||||||
fluid_level: FluidLevel,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl StaticFluidLevelSampler {
|
|
||||||
#[must_use]
|
|
||||||
pub const fn new(y: i32, block: &'static Block) -> Self {
|
|
||||||
Self {
|
|
||||||
fluid_level: FluidLevel::new(y, block),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl FluidLevelSamplerImpl for StaticFluidLevelSampler {
|
|
||||||
fn get_fluid_level(&self, _x: i32, _y: i32, _z: i32) -> &FluidLevel {
|
|
||||||
&self.fluid_level
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub trait FluidLevelSamplerImpl {
|
pub trait FluidLevelSamplerImpl {
|
||||||
fn get_fluid_level(&self, x: i32, y: i32, z: i32) -> &FluidLevel;
|
fn get_fluid_level(&self, x: i32, y: i32, z: i32) -> &FluidLevel;
|
||||||
}
|
}
|
||||||
@ -108,7 +74,7 @@ macro_rules! local_y {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub struct WorldAquiferSampler {
|
pub struct WorldAquiferSampler {
|
||||||
fluid_level_sampler: FluidLevelSampler,
|
fluid_level_sampler: StandardChunkFluidLevelSampler,
|
||||||
start_x: i32,
|
start_x: i32,
|
||||||
start_y: i32,
|
start_y: i32,
|
||||||
start_z: i32,
|
start_z: i32,
|
||||||
@ -142,7 +108,7 @@ impl WorldAquiferSampler {
|
|||||||
random_deriver: &XoroshiroSplitter,
|
random_deriver: &XoroshiroSplitter,
|
||||||
minimum_y: i8,
|
minimum_y: i8,
|
||||||
height: u16,
|
height: u16,
|
||||||
fluid_level: FluidLevelSampler,
|
fluid_level: StandardChunkFluidLevelSampler,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
let start_x = local_xz!(chunk_pos::start_block_x(chunk_x)) - 1;
|
let start_x = local_xz!(chunk_pos::start_block_x(chunk_x)) - 1;
|
||||||
let end_x = local_xz!(chunk_pos::end_block_x(chunk_x)) + 1;
|
let end_x = local_xz!(chunk_pos::end_block_x(chunk_x)) + 1;
|
||||||
@ -312,7 +278,7 @@ impl WorldAquiferSampler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn get_fluid_level(
|
fn get_fluid_level(
|
||||||
fluid_level_sampler: &FluidLevelSampler,
|
fluid_level_sampler: &StandardChunkFluidLevelSampler,
|
||||||
block_x: i32,
|
block_x: i32,
|
||||||
block_y: i32,
|
block_y: i32,
|
||||||
block_z: i32,
|
block_z: i32,
|
||||||
@ -646,12 +612,12 @@ impl AquiferSamplerImpl for WorldAquiferSampler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub struct SeaLevelAquiferSampler {
|
pub struct SeaLevelAquiferSampler {
|
||||||
level_sampler: FluidLevelSampler,
|
level_sampler: StandardChunkFluidLevelSampler,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl SeaLevelAquiferSampler {
|
impl SeaLevelAquiferSampler {
|
||||||
#[must_use]
|
#[must_use]
|
||||||
pub const fn new(level_sampler: FluidLevelSampler) -> Self {
|
pub const fn new(level_sampler: StandardChunkFluidLevelSampler) -> Self {
|
||||||
Self { level_sampler }
|
Self { level_sampler }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -720,7 +686,7 @@ mod random_positions_and_hypot {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::{AquiferSampler, FluidLevel, FluidLevelSampler, WorldAquiferSampler};
|
use super::{AquiferSampler, FluidLevel, WorldAquiferSampler};
|
||||||
|
|
||||||
const SEED: u64 = 0;
|
const SEED: u64 = 0;
|
||||||
static RANDOM_CONFIG: LazyLock<GlobalRandomConfig> =
|
static RANDOM_CONFIG: LazyLock<GlobalRandomConfig> =
|
||||||
@ -743,10 +709,10 @@ mod random_positions_and_hypot {
|
|||||||
let chunk_x = 7;
|
let chunk_x = 7;
|
||||||
let chunk_z = 4;
|
let chunk_z = 4;
|
||||||
|
|
||||||
let sampler = FluidLevelSampler::Chunk(StandardChunkFluidLevelSampler::new(
|
let sampler = StandardChunkFluidLevelSampler::new(
|
||||||
FluidLevel::new(63, &WATER_BLOCK),
|
FluidLevel::new(63, &WATER_BLOCK),
|
||||||
FluidLevel::new(-54, &LAVA_BLOCK),
|
FluidLevel::new(-54, &LAVA_BLOCK),
|
||||||
));
|
);
|
||||||
const CHUNK_WIDTH: usize = 16;
|
const CHUNK_WIDTH: usize = 16;
|
||||||
let noise = ChunkNoiseGenerator::new(
|
let noise = ChunkNoiseGenerator::new(
|
||||||
&base_router.noise,
|
&base_router.noise,
|
||||||
|
|||||||
@ -12,11 +12,11 @@ use pumpkin_util::{
|
|||||||
use crate::generation::{
|
use crate::generation::{
|
||||||
noise::{
|
noise::{
|
||||||
aquifer_sampler::{
|
aquifer_sampler::{
|
||||||
AquiferSampler, AquiferSamplerImpl, FluidLevelSampler, SeaLevelAquiferSampler,
|
AquiferSampler, AquiferSamplerImpl, SeaLevelAquiferSampler, WorldAquiferSampler,
|
||||||
WorldAquiferSampler,
|
|
||||||
},
|
},
|
||||||
ore_sampler::OreVeinSampler,
|
ore_sampler::OreVeinSampler,
|
||||||
},
|
},
|
||||||
|
proto_chunk::StandardChunkFluidLevelSampler,
|
||||||
section_coords,
|
section_coords,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -182,7 +182,7 @@ impl<'a> ChunkNoiseGenerator<'a> {
|
|||||||
start_block_x: i32,
|
start_block_x: i32,
|
||||||
start_block_z: i32,
|
start_block_z: i32,
|
||||||
generation_shape: &'a GenerationShapeConfig,
|
generation_shape: &'a GenerationShapeConfig,
|
||||||
level_sampler: FluidLevelSampler,
|
level_sampler: StandardChunkFluidLevelSampler,
|
||||||
aquifers: bool,
|
aquifers: bool,
|
||||||
ore_veins: bool,
|
ore_veins: bool,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
|
|||||||
@ -39,9 +39,7 @@ use crate::chunk::format::LightContainer;
|
|||||||
use crate::chunk::{ChunkData, ChunkHeightmapType, ChunkLight};
|
use crate::chunk::{ChunkData, ChunkHeightmapType, ChunkLight};
|
||||||
use crate::chunk_system::StagedChunkEnum;
|
use crate::chunk_system::StagedChunkEnum;
|
||||||
use crate::generation::height_limit::HeightLimitView;
|
use crate::generation::height_limit::HeightLimitView;
|
||||||
use crate::generation::noise::aquifer_sampler::{
|
use crate::generation::noise::aquifer_sampler::{FluidLevel, FluidLevelSamplerImpl};
|
||||||
FluidLevel, FluidLevelSampler, FluidLevelSamplerImpl,
|
|
||||||
};
|
|
||||||
use crate::generation::noise::perlin::DoublePerlinNoiseSampler;
|
use crate::generation::noise::perlin::DoublePerlinNoiseSampler;
|
||||||
use crate::generation::noise::router::multi_noise_sampler::MultiNoiseSamplerBuilderOptions;
|
use crate::generation::noise::router::multi_noise_sampler::MultiNoiseSamplerBuilderOptions;
|
||||||
use crate::generation::noise::router::surface_height_sampler::SurfaceHeightSamplerBuilderOptions;
|
use crate::generation::noise::router::surface_height_sampler::SurfaceHeightSamplerBuilderOptions;
|
||||||
@ -580,13 +578,13 @@ impl ProtoChunk {
|
|||||||
let start_x = start_block_x(self.x);
|
let start_x = start_block_x(self.x);
|
||||||
let start_z = start_block_z(self.z);
|
let start_z = start_block_z(self.z);
|
||||||
|
|
||||||
let sampler = FluidLevelSampler::Chunk(StandardChunkFluidLevelSampler::new(
|
let sampler = StandardChunkFluidLevelSampler::new(
|
||||||
FluidLevel::new(
|
FluidLevel::new(
|
||||||
settings.sea_level,
|
settings.sea_level,
|
||||||
Block::from_state_id(settings.default_fluid.id),
|
Block::from_state_id(settings.default_fluid.id),
|
||||||
),
|
),
|
||||||
FluidLevel::new(-54, &Block::LAVA),
|
FluidLevel::new(-54, &Block::LAVA),
|
||||||
));
|
);
|
||||||
|
|
||||||
let mut noise_sampler = ChunkNoiseGenerator::new(
|
let mut noise_sampler = ChunkNoiseGenerator::new(
|
||||||
&noise_router.noise,
|
&noise_router.noise,
|
||||||
|
|||||||
@ -163,17 +163,15 @@ impl Level {
|
|||||||
let world_gen = get_world_gen(seed, dimension).into();
|
let world_gen = get_world_gen(seed, dimension).into();
|
||||||
|
|
||||||
let chunk_saver: Arc<dyn FileIO<Data = SyncChunk>> = match &level_config.chunk {
|
let chunk_saver: Arc<dyn FileIO<Data = SyncChunk>> = match &level_config.chunk {
|
||||||
ChunkConfig::Linear(config) => Arc::new(
|
ChunkConfig::Linear => Arc::new(ChunkFileManager::<LinearV2File<ChunkData>>::new(())),
|
||||||
ChunkFileManager::<LinearV2File<ChunkData>>::new(config.clone()),
|
|
||||||
),
|
|
||||||
ChunkConfig::Anvil(config) => Arc::new(
|
ChunkConfig::Anvil(config) => Arc::new(
|
||||||
ChunkFileManager::<AnvilChunkFile<ChunkData>>::new(config.clone()),
|
ChunkFileManager::<AnvilChunkFile<ChunkData>>::new(config.clone()),
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
let entity_saver: Arc<dyn FileIO<Data = SyncEntityChunk>> = match &level_config.chunk {
|
let entity_saver: Arc<dyn FileIO<Data = SyncEntityChunk>> = match &level_config.chunk {
|
||||||
ChunkConfig::Linear(config) => Arc::new(ChunkFileManager::<
|
ChunkConfig::Linear => {
|
||||||
LinearV2File<ChunkEntityData>,
|
Arc::new(ChunkFileManager::<LinearV2File<ChunkEntityData>>::new(()))
|
||||||
>::new(config.clone())),
|
}
|
||||||
ChunkConfig::Anvil(config) => Arc::new(ChunkFileManager::<
|
ChunkConfig::Anvil(config) => Arc::new(ChunkFileManager::<
|
||||||
AnvilChunkFile<ChunkEntityData>,
|
AnvilChunkFile<ChunkEntityData>,
|
||||||
>::new(config.clone())),
|
>::new(config.clone())),
|
||||||
@ -213,7 +211,11 @@ impl Level {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// TODO
|
// TODO
|
||||||
let total_cores = num_cpus::get().saturating_sub(2).max(1);
|
let total_cores = thread::available_parallelism()
|
||||||
|
.map(|n| n.get())
|
||||||
|
.unwrap_or(1)
|
||||||
|
.saturating_sub(2)
|
||||||
|
.max(1);
|
||||||
let threads_per_dimension = (total_cores / 2).max(1);
|
let threads_per_dimension = (total_cores / 2).max(1);
|
||||||
|
|
||||||
GenerationSchedule::create(
|
GenerationSchedule::create(
|
||||||
|
|||||||
@ -50,10 +50,7 @@ pub use generation::{
|
|||||||
|
|
||||||
use crate::generation::{
|
use crate::generation::{
|
||||||
biome_coords,
|
biome_coords,
|
||||||
noise::{
|
noise::{CHUNK_DIM, ChunkNoiseGenerator, aquifer_sampler::FluidLevel},
|
||||||
CHUNK_DIM, ChunkNoiseGenerator,
|
|
||||||
aquifer_sampler::{FluidLevel, FluidLevelSampler},
|
|
||||||
},
|
|
||||||
positions::chunk_pos,
|
positions::chunk_pos,
|
||||||
proto_chunk::TerrainCache,
|
proto_chunk::TerrainCache,
|
||||||
};
|
};
|
||||||
@ -77,13 +74,13 @@ pub fn bench_create_and_populate_noise(
|
|||||||
// Create noise sampler and other required components
|
// Create noise sampler and other required components
|
||||||
let generation_shape = &settings.shape;
|
let generation_shape = &settings.shape;
|
||||||
let horizontal_cell_count = CHUNK_DIM / generation_shape.horizontal_cell_block_count();
|
let horizontal_cell_count = CHUNK_DIM / generation_shape.horizontal_cell_block_count();
|
||||||
let sampler = FluidLevelSampler::Chunk(StandardChunkFluidLevelSampler::new(
|
let sampler = StandardChunkFluidLevelSampler::new(
|
||||||
FluidLevel::new(
|
FluidLevel::new(
|
||||||
settings.sea_level,
|
settings.sea_level,
|
||||||
Block::from_state_id(settings.default_fluid.id),
|
Block::from_state_id(settings.default_fluid.id),
|
||||||
),
|
),
|
||||||
FluidLevel::new(-54, &pumpkin_data::Block::LAVA),
|
FluidLevel::new(-54, &pumpkin_data::Block::LAVA),
|
||||||
));
|
);
|
||||||
|
|
||||||
let start_x = chunk_pos::start_block_x(0);
|
let start_x = chunk_pos::start_block_x(0);
|
||||||
let start_z = chunk_pos::start_block_z(0);
|
let start_z = chunk_pos::start_block_z(0);
|
||||||
@ -207,13 +204,13 @@ pub fn bench_create_and_populate_noise_with_surface(
|
|||||||
MultiNoiseSampler::generate(&base_router.multi_noise, &multi_noise_config);
|
MultiNoiseSampler::generate(&base_router.multi_noise, &multi_noise_config);
|
||||||
|
|
||||||
// Noise sampler
|
// Noise sampler
|
||||||
let sampler = FluidLevelSampler::Chunk(StandardChunkFluidLevelSampler::new(
|
let sampler = StandardChunkFluidLevelSampler::new(
|
||||||
FluidLevel::new(
|
FluidLevel::new(
|
||||||
settings.sea_level,
|
settings.sea_level,
|
||||||
Block::from_state_id(settings.default_fluid.id),
|
Block::from_state_id(settings.default_fluid.id),
|
||||||
),
|
),
|
||||||
FluidLevel::new(-54, &pumpkin_data::Block::LAVA),
|
FluidLevel::new(-54, &pumpkin_data::Block::LAVA),
|
||||||
));
|
);
|
||||||
|
|
||||||
let mut noise_sampler = ChunkNoiseGenerator::new(
|
let mut noise_sampler = ChunkNoiseGenerator::new(
|
||||||
&base_router.noise,
|
&base_router.noise,
|
||||||
|
|||||||
@ -20,7 +20,6 @@ doctest = false
|
|||||||
# pumpkin
|
# pumpkin
|
||||||
arc-swap.workspace = true
|
arc-swap.workspace = true
|
||||||
rayon.workspace = true
|
rayon.workspace = true
|
||||||
num_cpus.workspace = true
|
|
||||||
pumpkin-util.workspace = true
|
pumpkin-util.workspace = true
|
||||||
pumpkin-nbt.workspace = true
|
pumpkin-nbt.workspace = true
|
||||||
pumpkin-config.workspace = true
|
pumpkin-config.workspace = true
|
||||||
|
|||||||
@ -254,10 +254,8 @@ impl Server {
|
|||||||
};
|
};
|
||||||
let server = Arc::new(server);
|
let server = Arc::new(server);
|
||||||
|
|
||||||
let total_cores = num_cpus::get().saturating_sub(2).max(1);
|
|
||||||
let gen_pool = Arc::new(
|
let gen_pool = Arc::new(
|
||||||
rayon::ThreadPoolBuilder::new()
|
rayon::ThreadPoolBuilder::new()
|
||||||
.num_threads(total_cores)
|
|
||||||
.thread_name(|i| format!("Gen-Pool-{i}"))
|
.thread_name(|i| format!("Gen-Pool-{i}"))
|
||||||
.build()
|
.build()
|
||||||
.expect("Failed to build generation thread pool"),
|
.expect("Failed to build generation thread pool"),
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user