From d629ae8fbb67834ac55783908505d3eb8f6a4664 Mon Sep 17 00:00:00 2001 From: nym21 Date: Thu, 23 Jan 2025 11:11:39 +0100 Subject: [PATCH] bindex: snapshot --- Cargo.lock | 3724 +---------------- Cargo.toml | 76 +- {src/crates/bindex => bindex}/.gitignore | 0 {src/crates/bindex => bindex}/Cargo.lock | 0 {src/crates/bindex => bindex}/Cargo.toml | 0 {src/crates/bindex => bindex}/rustfmt.toml | 0 {src/crates/bindex => bindex}/src/main.rs | 117 +- .../src/structs/addressbytes.rs | 0 .../src/structs/addressindex.rs | 0 .../src/structs/addressindextxoutindex.rs | 0 .../src/structs/addresstype.rs | 0 .../src/structs/addresstypeindex.rs | 0 .../bindex => bindex}/src/structs/amount.rs | 0 .../bindex => bindex}/src/structs/date.rs | 2 +- .../bindex => bindex}/src/structs/exit.rs | 0 .../bindex => bindex}/src/structs/height.rs | 0 .../bindex => bindex}/src/structs/mod.rs | 0 .../bindex => bindex}/src/structs/prefix.rs | 5 + .../bindex => bindex}/src/structs/slice.rs | 0 .../bindex => bindex}/src/structs/store.rs | 0 .../bindex => bindex}/src/structs/stores.rs | 0 .../src/structs/timestamp.rs | 0 .../bindex => bindex}/src/structs/txindex.rs | 0 .../src/structs/txindexvout.rs | 0 .../src/structs/txoutindex.rs | 0 .../bindex => bindex}/src/structs/vec.rs | 13 +- .../bindex => bindex}/src/structs/vecs.rs | 34 +- .../bindex => bindex}/src/structs/version.rs | 0 {src/crates/biter => biter}/CHANGELOG.md | 0 {src/crates/biter => biter}/Cargo.lock | 0 {src/crates/biter => biter}/Cargo.toml | 0 {src/crates/biter => biter}/LICENSE.md | 0 {src/crates/biter => biter}/README.md | 0 .../src/blk_index_to_blk_path.rs | 0 .../src/blk_index_to_blk_recap.rs | 0 .../biter => biter}/src/blk_metadata.rs | 0 .../src/blk_metadata_and_block.rs | 0 {src/crates/biter => biter}/src/blk_recap.rs | 0 {src/crates/biter => biter}/src/lib.rs | 32 +- {src/crates/biter => biter}/src/main.rs | 0 {src/crates/biter => biter}/src/utils.rs | 0 {src/crates/iterable => iterable}/Cargo.lock | 0 {src/crates/iterable => iterable}/Cargo.toml | 0 {src/crates/iterable => iterable}/README.md | 0 {src/crates/iterable => iterable}/src/lib.rs | 0 .../struct_iterable_derive/Cargo.toml | 0 .../struct_iterable_derive/README.md | 0 .../struct_iterable_derive/src/lib.rs | 0 .../struct_iterable_internal/Cargo.toml | 0 .../struct_iterable_internal/README.md | 0 .../struct_iterable_internal/src/lib.rs | 0 {src/crates/snkrj => snkrj}/Cargo.lock | 0 {src/crates/snkrj => snkrj}/Cargo.toml | 0 {src/crates/snkrj => snkrj}/LICENSE.md | 0 {src/crates/snkrj => snkrj}/README.md | 0 {src/crates/snkrj => snkrj}/src/lib.rs | 0 {src/crates/snkrj => snkrj}/src/main.rs | 0 .../storable_vec => storable_vec}/.gitignore | 0 .../storable_vec => storable_vec}/Cargo.lock | 0 .../storable_vec => storable_vec}/Cargo.toml | 0 .../storable_vec => storable_vec}/LICENSE.md | 0 .../storable_vec => storable_vec}/README.md | 0 .../storable_vec => storable_vec}/src/lib.rs | 175 +- .../storable_vec => storable_vec}/src/main.rs | 0 64 files changed, 334 insertions(+), 3844 deletions(-) rename {src/crates/bindex => bindex}/.gitignore (100%) rename {src/crates/bindex => bindex}/Cargo.lock (100%) rename {src/crates/bindex => bindex}/Cargo.toml (100%) rename {src/crates/bindex => bindex}/rustfmt.toml (100%) rename {src/crates/bindex => bindex}/src/main.rs (87%) rename {src/crates/bindex => bindex}/src/structs/addressbytes.rs (100%) rename {src/crates/bindex => bindex}/src/structs/addressindex.rs (100%) rename {src/crates/bindex => bindex}/src/structs/addressindextxoutindex.rs (100%) rename {src/crates/bindex => bindex}/src/structs/addresstype.rs (100%) rename {src/crates/bindex => bindex}/src/structs/addresstypeindex.rs (100%) rename {src/crates/bindex => bindex}/src/structs/amount.rs (100%) rename {src/crates/bindex => bindex}/src/structs/date.rs (90%) rename {src/crates/bindex => bindex}/src/structs/exit.rs (100%) rename {src/crates/bindex => bindex}/src/structs/height.rs (100%) rename {src/crates/bindex => bindex}/src/structs/mod.rs (100%) rename {src/crates/bindex => bindex}/src/structs/prefix.rs (94%) rename {src/crates/bindex => bindex}/src/structs/slice.rs (100%) rename {src/crates/bindex => bindex}/src/structs/store.rs (100%) rename {src/crates/bindex => bindex}/src/structs/stores.rs (100%) rename {src/crates/bindex => bindex}/src/structs/timestamp.rs (100%) rename {src/crates/bindex => bindex}/src/structs/txindex.rs (100%) rename {src/crates/bindex => bindex}/src/structs/txindexvout.rs (100%) rename {src/crates/bindex => bindex}/src/structs/txoutindex.rs (100%) rename {src/crates/bindex => bindex}/src/structs/vec.rs (92%) rename {src/crates/bindex => bindex}/src/structs/vecs.rs (95%) rename {src/crates/bindex => bindex}/src/structs/version.rs (100%) rename {src/crates/biter => biter}/CHANGELOG.md (100%) rename {src/crates/biter => biter}/Cargo.lock (100%) rename {src/crates/biter => biter}/Cargo.toml (100%) rename {src/crates/biter => biter}/LICENSE.md (100%) rename {src/crates/biter => biter}/README.md (100%) rename {src/crates/biter => biter}/src/blk_index_to_blk_path.rs (100%) rename {src/crates/biter => biter}/src/blk_index_to_blk_recap.rs (100%) rename {src/crates/biter => biter}/src/blk_metadata.rs (100%) rename {src/crates/biter => biter}/src/blk_metadata_and_block.rs (100%) rename {src/crates/biter => biter}/src/blk_recap.rs (100%) rename {src/crates/biter => biter}/src/lib.rs (95%) rename {src/crates/biter => biter}/src/main.rs (100%) rename {src/crates/biter => biter}/src/utils.rs (100%) rename {src/crates/iterable => iterable}/Cargo.lock (100%) rename {src/crates/iterable => iterable}/Cargo.toml (100%) rename {src/crates/iterable => iterable}/README.md (100%) rename {src/crates/iterable => iterable}/src/lib.rs (100%) rename {src/crates/iterable => iterable}/struct_iterable_derive/Cargo.toml (100%) rename {src/crates/iterable => iterable}/struct_iterable_derive/README.md (100%) rename {src/crates/iterable => iterable}/struct_iterable_derive/src/lib.rs (100%) rename {src/crates/iterable => iterable}/struct_iterable_internal/Cargo.toml (100%) rename {src/crates/iterable => iterable}/struct_iterable_internal/README.md (100%) rename {src/crates/iterable => iterable}/struct_iterable_internal/src/lib.rs (100%) rename {src/crates/snkrj => snkrj}/Cargo.lock (100%) rename {src/crates/snkrj => snkrj}/Cargo.toml (100%) rename {src/crates/snkrj => snkrj}/LICENSE.md (100%) rename {src/crates/snkrj => snkrj}/README.md (100%) rename {src/crates/snkrj => snkrj}/src/lib.rs (100%) rename {src/crates/snkrj => snkrj}/src/main.rs (100%) rename {src/crates/storable_vec => storable_vec}/.gitignore (100%) rename {src/crates/storable_vec => storable_vec}/Cargo.lock (100%) rename {src/crates/storable_vec => storable_vec}/Cargo.toml (100%) rename {src/crates/storable_vec => storable_vec}/LICENSE.md (100%) rename {src/crates/storable_vec => storable_vec}/README.md (100%) rename {src/crates/storable_vec => storable_vec}/src/lib.rs (65%) rename {src/crates/storable_vec => storable_vec}/src/main.rs (100%) diff --git a/Cargo.lock b/Cargo.lock index aebbad5f6..b4de7143a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,16 +2,6 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" -dependencies = [ - "lazy_static", - "regex", -] - [[package]] name = "addr2line" version = "0.21.0" @@ -27,270 +17,18 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "ahash" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if", - "getrandom", - "once_cell", - "serde", - "version_check", - "zerocopy", -] - -[[package]] -name = "aho-corasick" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" -dependencies = [ - "memchr", -] - -[[package]] -name = "alloc-no-stdlib" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" - -[[package]] -name = "alloc-stdlib" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" -dependencies = [ - "alloc-no-stdlib", -] - -[[package]] -name = "allocative" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fac2ce611db8b8cee9b2aa886ca03c924e9da5e5295d0dbd0526e5d0b0710f7" -dependencies = [ - "allocative_derive", - "ctor", -] - -[[package]] -name = "allocative_derive" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe233a377643e0fc1a56421d7c90acdec45c291b30345eb9f08e8d0ddce5a4ab" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - -[[package]] -name = "allocator-api2" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" - -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "anstream" -version = "0.6.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" - -[[package]] -name = "anstyle-parse" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" -dependencies = [ - "anstyle", - "windows-sys 0.59.0", -] - -[[package]] -name = "anyhow" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" - [[package]] name = "arrayvec" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" -[[package]] -name = "ast_node" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91fb5864e2f5bf9fd9797b94b2dfd1554d4c3092b535008b27d7e15c86675a2f" -dependencies = [ - "proc-macro2", - "quote", - "swc_macros_common", - "syn 2.0.96", -] - -[[package]] -name = "async-compression" -version = "0.4.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df895a515f70646414f4b45c0b79082783b80552b373a68283012928df56f522" -dependencies = [ - "brotli", - "flate2", - "futures-core", - "memchr", - "pin-project-lite", - "tokio", - "zstd", - "zstd-safe", -] - -[[package]] -name = "async-trait" -version = "0.1.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - -[[package]] -name = "auto_impl" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - [[package]] name = "autocfg" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" -[[package]] -name = "axum" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" -dependencies = [ - "async-trait", - "axum-core", - "bytes", - "futures-util", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-util", - "itoa", - "matchit", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "serde_json", - "serde_path_to_error", - "serde_urlencoded", - "sync_wrapper", - "tokio", - "tower", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "axum-core" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http", - "http-body", - "http-body-util", - "mime", - "pin-project-lite", - "rustversion", - "sync_wrapper", - "tower-layer", - "tower-service", - "tracing", -] - [[package]] name = "backtrace" version = "0.3.71" @@ -301,7 +39,7 @@ dependencies = [ "cc", "cfg-if", "libc", - "miniz_oxide 0.7.4", + "miniz_oxide", "object", "rustc-demangle", ] @@ -322,27 +60,6 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "base64-simd" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "781dd20c3aff0bd194fe7d2a977dd92f21c173891f3a03b677359e5fa457e5d5" -dependencies = [ - "simd-abstraction", -] - [[package]] name = "bech32" version = "0.11.0" @@ -350,30 +67,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" [[package]] -name = "better_scoped_tls" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50fd297a11c709be8348aec039c8b91de16075d2b2bdaee1bd562c0875993664" +name = "bindex" +version = "0.1.0" dependencies = [ - "scoped-tls", -] - -[[package]] -name = "bincode" -version = "2.0.0-rc.3" -source = "git+https://github.com/bincode-org/bincode.git#5a91c1210168b968b957a14b743cf134f2d20719" -dependencies = [ - "bincode_derive", - "serde", - "unty", -] - -[[package]] -name = "bincode_derive" -version = "2.0.0-rc.3" -source = "git+https://github.com/bincode-org/bincode.git#5a91c1210168b968b957a14b743cf134f2d20719" -dependencies = [ - "virtue", + "bitcoin_hashes 0.16.0", + "biter 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "color-eyre", + "ctrlc", + "derive_deref", + "jiff", + "rayon", + "snkrj", + "storable_vec", ] [[package]] @@ -447,9 +152,9 @@ dependencies = [ [[package]] name = "bitcoin_hashes" -version = "0.15.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0982261c82a50d89d1a411602afee0498b3e0debe3d36693f0c661352809639" +checksum = "7e5d09f16329cd545d7e6008b2c6b2af3a90bc678cf41ac3d2f6755943301b16" dependencies = [ "bitcoin-io 0.2.0", "hex-conservative 0.3.0", @@ -492,6 +197,21 @@ dependencies = [ "serde_json", ] +[[package]] +name = "biter" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02527a2b7944d9edc90db0a73339c57cd521f9623f99416574d1943312c9d290" +dependencies = [ + "bitcoin", + "bitcoincore-rpc", + "crossbeam", + "derived-deref", + "rayon", + "serde", + "serde_json", +] + [[package]] name = "bitflags" version = "1.3.2" @@ -504,101 +224,18 @@ version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1be3f42a67d6d345ecd59f675f3f012d6974981560836e938c22b424b85ce1be" -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "brotli" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", - "brotli-decompressor", -] - -[[package]] -name = "brotli-decompressor" -version = "4.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", -] - -[[package]] -name = "browserslist-rs" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdf0ca73de70c3da94e4194e4a01fe732378f55d47cf4c0588caab22a0dbfa14" -dependencies = [ - "ahash", - "chrono", - "either", - "indexmap", - "itertools", - "nom", - "once_cell", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" -dependencies = [ - "allocator-api2", -] - -[[package]] -name = "bytemuck" -version = "1.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" - [[package]] name = "byteorder" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" -[[package]] -name = "bytes" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" - [[package]] name = "cc" version = "1.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a012a0df96dd6d06ba9a1b29d6402d1a5d77c6befd2566afdc26e10603dc93d7" dependencies = [ - "jobserver", - "libc", "shlex", ] @@ -614,61 +251,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" -[[package]] -name = "chrono" -version = "0.4.39" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "js-sys", - "num-traits", - "serde", - "wasm-bindgen", - "windows-targets", -] - -[[package]] -name = "clap" -version = "4.5.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8eb5e908ef3a6efbe1ed62520fb7287959888c88485abe072543190ecc66783" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.5.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b01801b5fc6a0a232407abc821660c9c6d25a1cafc0d4f85f29fb8d9afc121" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", -] - -[[package]] -name = "clap_derive" -version = "4.5.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.96", -] - -[[package]] -name = "clap_lex" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" - [[package]] name = "color-eyre" version = "0.6.3" @@ -680,7 +262,7 @@ dependencies = [ "eyre", "indenter", "once_cell", - "owo-colors 3.5.0", + "owo-colors", "tracing-error", ] @@ -691,51 +273,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd6be1b2a7e382e2b98b43b2adcca6bb0e465af0bdd38123873ae61eb17a72c2" dependencies = [ "once_cell", - "owo-colors 3.5.0", + "owo-colors", "tracing-core", "tracing-error", ] -[[package]] -name = "colorchoice" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "cpufeatures" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" -dependencies = [ - "libc", -] - -[[package]] -name = "crc32fast" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" -dependencies = [ - "cfg-if", -] - [[package]] name = "crossbeam" version = "0.8.4" @@ -792,26 +334,6 @@ version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "ctor" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" -dependencies = [ - "quote", - "syn 1.0.109", -] - [[package]] name = "ctrlc" version = "3.4.5" @@ -819,50 +341,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3" dependencies = [ "nix", - "windows-sys 0.59.0", -] - -[[package]] -name = "dashmap" -version = "5.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" -dependencies = [ - "cfg-if", - "hashbrown 0.14.5", - "lock_api", - "once_cell", - "parking_lot_core 0.9.10", -] - -[[package]] -name = "dashmap" -version = "6.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" -dependencies = [ - "cfg-if", - "crossbeam-utils", - "hashbrown 0.14.5", - "lock_api", - "once_cell", - "parking_lot_core 0.9.10", -] - -[[package]] -name = "data-encoding" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" - -[[package]] -name = "debugid" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" -dependencies = [ - "serde", - "uuid", + "windows-sys", ] [[package]] @@ -887,81 +366,12 @@ dependencies = [ "syn 2.0.96", ] -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", -] - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - [[package]] name = "either" version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "env_filter" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" -dependencies = [ - "log", - "regex", -] - -[[package]] -name = "env_logger" -version = "0.11.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0" -dependencies = [ - "anstream", - "anstyle", - "env_filter", - "humantime", - "log", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - [[package]] name = "eyre" version = "0.6.12" @@ -972,69 +382,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - -[[package]] -name = "flate2" -version = "1.0.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" -dependencies = [ - "crc32fast", - "miniz_oxide 0.8.0", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "from_variant" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d7ccf961415e7aa17ef93dcb6c2441faaa8e768abe09e659b908089546f74c5" -dependencies = [ - "proc-macro2", - "swc_macros_common", - "syn 2.0.96", -] - [[package]] name = "fs2" version = "0.4.3" @@ -1045,72 +392,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-io" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-io", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - [[package]] name = "getrandom" version = "0.2.15" @@ -1128,62 +409,6 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" -[[package]] -name = "h2" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" -dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" -dependencies = [ - "ahash", -] - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - [[package]] name = "hex-conservative" version = "0.2.1" @@ -1208,352 +433,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3011d1213f159867b13cfd6ac92d2cd5f1345762c63be3554e84092d85a50bbd" -[[package]] -name = "hstr" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63d6824358c0fd9a68bb23999ed2ef76c84f79408a26ef7ae53d5f370c94ad36" -dependencies = [ - "hashbrown 0.14.5", - "new_debug_unreachable", - "once_cell", - "phf", - "rustc-hash", - "triomphe", -] - -[[package]] -name = "http" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" -dependencies = [ - "bytes", - "http", -] - -[[package]] -name = "http-body-util" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" -dependencies = [ - "bytes", - "futures-util", - "http", - "http-body", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - -[[package]] -name = "hyper" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "smallvec", - "tokio", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.27.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" -dependencies = [ - "futures-util", - "http", - "hyper", - "hyper-util", - "rustls", - "rustls-pki-types", - "tokio", - "tokio-rustls", - "tower-service", -] - -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", -] - -[[package]] -name = "hyper-util" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "http", - "http-body", - "hyper", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "if_chain" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" - [[package]] name = "indenter" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" -[[package]] -name = "indexmap" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" -dependencies = [ - "equivalent", - "hashbrown 0.15.2", - "serde", -] - -[[package]] -name = "inferno" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692eda1cc790750b9f5a5e3921ef9c117fd5498b97cfacbc910693e5b29002dc" -dependencies = [ - "ahash", - "clap", - "crossbeam-channel", - "crossbeam-utils", - "dashmap 6.1.0", - "env_logger", - "indexmap", - "itoa", - "log", - "num-format", - "once_cell", - "quick-xml", - "rgb", - "str_stack", -] - [[package]] name = "instant" version = "0.1.13" @@ -1563,39 +448,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "ipnet" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" - -[[package]] -name = "is-macro" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d57a3e447e24c22647738e4607f1df1e0ec6f72e16182c4cd199f647cdfb0e4" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.96", -] - -[[package]] -name = "is_terminal_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" - -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = [ - "either", -] - [[package]] name = "itoa" version = "1.0.14" @@ -1603,31 +455,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] -name = "jobserver" -version = "0.1.32" +name = "jiff" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +checksum = "fb73dbeee753ae9411475ddd8861765fa7f25fe1eebf180c24e1bbabef3fbdcd" dependencies = [ - "libc", + "jiff-tzdb-platform", + "log", + "portable-atomic", + "portable-atomic-util", + "serde", + "windows-sys", ] [[package]] -name = "js-sys" -version = "0.3.76" +name = "jiff-tzdb" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" -dependencies = [ - "once_cell", - "wasm-bindgen", -] +checksum = "cf2cec2f5d266af45a071ece48b1fb89f3b00b2421ac3a5fe10285a6caaa60d3" [[package]] -name = "jsonc-parser" -version = "0.21.1" +name = "jiff-tzdb-platform" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b56a20e76235284255a09fcd1f45cf55d3c524ea657ebd3854735925c57743d" +checksum = "a63c62e404e7b92979d2792352d885a7f8f83fd1d0d31eea582d77b2ceca697e" dependencies = [ - "serde_json", + "jiff-tzdb", ] [[package]] @@ -1636,47 +489,12 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3662a38d341d77efecb73caf01420cfa5aa63c0253fd7bc05289ef9f6616e1bf" dependencies = [ - "base64 0.13.1", + "base64", "minreq", "serde", "serde_json", ] -[[package]] -name = "kibo_money" -version = "0.6.0" -dependencies = [ - "allocative", - "axum", - "bincode", - "bitcoin_hashes 0.15.0", - "biter", - "chrono", - "clap", - "color-eyre", - "ctrlc", - "derive_deref", - "env_logger", - "inferno", - "itertools", - "log", - "ordered-float", - "rayon", - "regex", - "reqwest", - "rlimit", - "serde", - "serde_json", - "snkrj", - "struct_iterable", - "swc", - "swc_common", - "tokio", - "toml", - "tower-http", - "zstd", -] - [[package]] name = "lazy_static" version = "1.5.0" @@ -1689,18 +507,6 @@ version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" -[[package]] -name = "linux-raw-sys" -version = "0.4.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" - -[[package]] -name = "litemap" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" - [[package]] name = "lock_api" version = "0.4.12" @@ -1716,24 +522,6 @@ name = "log" version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" -dependencies = [ - "serde", -] - -[[package]] -name = "lru" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670" -dependencies = [ - "hashbrown 0.13.2", -] - -[[package]] -name = "matchit" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" [[package]] name = "memchr" @@ -1750,43 +538,6 @@ dependencies = [ "libc", ] -[[package]] -name = "miette" -version = "7.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317f146e2eb7021892722af37cf1b971f0a70c8406f487e24952667616192c64" -dependencies = [ - "cfg-if", - "miette-derive", - "owo-colors 4.1.0", - "textwrap", - "thiserror", - "unicode-width", -] - -[[package]] -name = "miette-derive" -version = "7.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23c9b935fbe1d6cbd1dac857b54a688145e2d93f48db36010514d0f612d0ad67" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - [[package]] name = "miniz_oxide" version = "0.7.4" @@ -1796,15 +547,6 @@ dependencies = [ "adler", ] -[[package]] -name = "miniz_oxide" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" -dependencies = [ - "adler2", -] - [[package]] name = "minreq" version = "2.12.0" @@ -1816,40 +558,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.52.0", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "new_debug_unreachable" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" - [[package]] name = "nix" version = "0.29.0" @@ -1862,74 +570,6 @@ dependencies = [ "libc", ] -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "normpath" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a9da8c9922c35a1033d76f7272dfc2e7ee20392083d75aeea6ced23c6266578" -dependencies = [ - "winapi", -] - -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", - "serde", -] - -[[package]] -name = "num-format" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" -dependencies = [ - "arrayvec", - "itoa", -] - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - [[package]] name = "object" version = "0.32.2" @@ -1945,77 +585,12 @@ version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" -[[package]] -name = "openssl" -version = "0.10.66" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" -dependencies = [ - "bitflags 2.7.0", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "ordered-float" -version = "4.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" -dependencies = [ - "num-traits", -] - -[[package]] -name = "outref" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f222829ae9293e33a9f5e9f440c6760a3d450a64affe1846486b140db81c1f4" - [[package]] name = "owo-colors" version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" -[[package]] -name = "owo-colors" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb37767f6569cd834a413442455e0f066d0d522de8630436e2a1761d9726ba56" - [[package]] name = "parking_lot" version = "0.11.2" @@ -2024,17 +599,7 @@ checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" dependencies = [ "instant", "lock_api", - "parking_lot_core 0.8.6", -] - -[[package]] -name = "parking_lot" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" -dependencies = [ - "lock_api", - "parking_lot_core 0.9.10", + "parking_lot_core", ] [[package]] @@ -2046,100 +611,11 @@ dependencies = [ "cfg-if", "instant", "libc", - "redox_syscall 0.2.16", + "redox_syscall", "smallvec", "winapi", ] -[[package]] -name = "parking_lot_core" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.5.8", - "smallvec", - "windows-targets", -] - -[[package]] -name = "path-clean" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecba01bf2678719532c5e3059e0b5f0811273d94b397088b82e3bd0a78c78fdd" - -[[package]] -name = "path-clean" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17359afc20d7ab31fdb42bb844c8b3bb1dabd7dcf7e68428492da7f16966fcef" - -[[package]] -name = "pathdiff" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "petgraph" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" -dependencies = [ - "fixedbitset", - "indexmap", -] - -[[package]] -name = "phf" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" -dependencies = [ - "phf_macros", - "phf_shared", -] - -[[package]] -name = "phf_generator" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" -dependencies = [ - "phf_shared", - "rand", -] - -[[package]] -name = "phf_macros" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" -dependencies = [ - "phf_generator", - "phf_shared", - "proc-macro2", - "quote", - "syn 2.0.96", -] - -[[package]] -name = "phf_shared" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" -dependencies = [ - "siphasher", -] - [[package]] name = "pin-project-lite" version = "0.2.16" @@ -2147,16 +623,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] -name = "pin-utils" -version = "0.1.0" +name = "portable-atomic" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" [[package]] -name = "pkg-config" -version = "0.3.31" +name = "portable-atomic-util" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +dependencies = [ + "portable-atomic", +] [[package]] name = "ppv-lite86" @@ -2167,24 +646,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "preset_env_base" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c8a797e42c09d55157424ac6e9b6e9e5843fc68b887691b280b055e8c3ca5e4" -dependencies = [ - "ahash", - "anyhow", - "browserslist-rs", - "dashmap 5.5.3", - "from_variant", - "once_cell", - "semver 1.0.24", - "serde", - "st-map", - "tracing", -] - [[package]] name = "proc-macro2" version = "1.0.93" @@ -2194,44 +655,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "psm" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200b9ff220857e53e184257720a14553b2f4aa02577d2ed9842d45d4b9654810" -dependencies = [ - "cc", -] - -[[package]] -name = "ptr_meta" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9e76f66d3f9606f44e45598d155cb13ecf09f4a28199e48daf8c8fc937ea90" -dependencies = [ - "ptr_meta_derive", -] - -[[package]] -name = "ptr_meta_derive" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca414edb151b4c8d125c12566ab0d74dc9cdba36fb80eb7b848c15f495fd32d1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - -[[package]] -name = "quick-xml" -version = "0.37.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f22f29bdff3987b4d8632ef95fd6424ec7e4e0a57e2f4fc63e489e75357f6a03" -dependencies = [ - "memchr", -] - [[package]] name = "quote" version = "1.0.38" @@ -2241,18 +664,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - -[[package]] -name = "radix_fmt" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce082a9940a7ace2ad4a8b7d0b1eac6aa378895f18be598230c5f2284ac05426" - [[package]] name = "rand" version = "0.8.5" @@ -2312,213 +723,18 @@ dependencies = [ "bitflags 1.3.2", ] -[[package]] -name = "redox_syscall" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" -dependencies = [ - "bitflags 2.7.0", -] - -[[package]] -name = "regex" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" - -[[package]] -name = "reqwest" -version = "0.12.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da" -dependencies = [ - "base64 0.22.1", - "bytes", - "encoding_rs", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-tls", - "hyper-util", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls-pemfile", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "system-configuration", - "tokio", - "tokio-native-tls", - "tower", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "windows-registry", -] - -[[package]] -name = "rgb" -version = "0.8.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a" -dependencies = [ - "bytemuck", -] - -[[package]] -name = "ring" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" -dependencies = [ - "cc", - "cfg-if", - "getrandom", - "libc", - "spin", - "untrusted", - "windows-sys 0.52.0", -] - -[[package]] -name = "rlimit" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7043b63bd0cd1aaa628e476b80e6d4023a3b50eb32789f2728908107bd0c793a" -dependencies = [ - "libc", -] - [[package]] name = "rustc-demangle" version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc_version" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -dependencies = [ - "semver 0.9.0", -] - -[[package]] -name = "rustix" -version = "0.38.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6" -dependencies = [ - "bitflags 2.7.0", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "rustls" -version = "0.23.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fbb44d7acc4e873d613422379f69f237a1b141928c02f6bc6ccfddddc2d7993" -dependencies = [ - "once_cell", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-pemfile" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "rustls-pki-types" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" - -[[package]] -name = "rustls-webpki" -version = "0.102.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - -[[package]] -name = "rustversion" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" - [[package]] name = "ryu" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" -[[package]] -name = "ryu-js" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad97d4ce1560a5e27cec89519dc8300d1aa6035b099821261c651486a19e44d5" - [[package]] name = "sanakirja" version = "1.4.3" @@ -2528,7 +744,7 @@ dependencies = [ "fs2", "log", "memmap2", - "parking_lot 0.11.2", + "parking_lot", "sanakirja-core", "serde", "thiserror", @@ -2540,21 +756,6 @@ version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8376db34ae3eac6e7bd91168bc638450073b708ce9fb46940de676f552238bf5" -[[package]] -name = "schannel" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - [[package]] name = "scopeguard" version = "1.2.0" @@ -2582,53 +783,6 @@ dependencies = [ "cc", ] -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags 2.7.0", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "semver" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" -dependencies = [ - "serde", -] - -[[package]] -name = "semver-parser" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" - [[package]] name = "serde" version = "1.0.217" @@ -2661,48 +815,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serde_path_to_error" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" -dependencies = [ - "itoa", - "serde", -] - -[[package]] -name = "serde_spanned" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - [[package]] name = "sharded-slab" version = "0.1.7" @@ -2718,56 +830,12 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" -[[package]] -name = "signal-hook-registry" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" -dependencies = [ - "libc", -] - -[[package]] -name = "simd-abstraction" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cadb29c57caadc51ff8346233b5cec1d240b68ce55cf1afc764818791876987" -dependencies = [ - "outref", -] - -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - [[package]] name = "smallvec" version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" -[[package]] -name = "smartstring" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29" -dependencies = [ - "autocfg", - "static_assertions", - "version_check", -] - [[package]] name = "snkrj" version = "0.1.1" @@ -2776,110 +844,12 @@ dependencies = [ ] [[package]] -name = "socket2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +name = "storable_vec" +version = "0.1.2" dependencies = [ - "libc", - "windows-sys 0.52.0", + "memmap2", ] -[[package]] -name = "sourcemap" -version = "9.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27c4ea7042fd1a155ad95335b5d505ab00d5124ea0332a06c8390d200bb1a76a" -dependencies = [ - "base64-simd", - "bitvec", - "data-encoding", - "debugid", - "if_chain", - "rustc-hash", - "rustc_version", - "serde", - "serde_json", - "unicode-id-start", - "url", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "st-map" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8257dd592de7614be71a2342d36ba2d527ddad3f9a0c8d09d6ceed4c371531e4" -dependencies = [ - "arrayvec", - "static-map-macro", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "stacker" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799c883d55abdb5e98af1a7b3f23b9b6de8ecada0ecac058672d7635eb48ca7b" -dependencies = [ - "cc", - "cfg-if", - "libc", - "psm", - "windows-sys 0.59.0", -] - -[[package]] -name = "static-map-macro" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "710e9696ef338691287aeb937ee6ffe60022f579d3c8d2fd9d58973a9a10a466" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "str_stack" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9091b6114800a5f2141aee1d1b9d6ca3592ac062dc5decb3764ec5895a47b4eb" - -[[package]] -name = "string_enum" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9fe66b8ee349846ce2f9557a26b8f1e74843c4a13fb381f9a3d73617a5f956a" -dependencies = [ - "proc-macro2", - "quote", - "swc_macros_common", - "syn 2.0.96", -] - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - [[package]] name = "struct_iterable" version = "0.1.2" @@ -2902,953 +872,6 @@ dependencies = [ name = "struct_iterable_internal" version = "0.1.1" -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "swc" -version = "9.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0314867b5eae2f5fa7844bd68b0d4040737aad49914dceae13e603b4afd8d4a1" -dependencies = [ - "anyhow", - "base64 0.21.7", - "dashmap 5.5.3", - "either", - "indexmap", - "jsonc-parser", - "lru", - "once_cell", - "parking_lot 0.12.3", - "pathdiff", - "regex", - "rustc-hash", - "serde", - "serde_json", - "sourcemap", - "swc_atoms", - "swc_cached", - "swc_common", - "swc_compiler_base", - "swc_config", - "swc_ecma_ast", - "swc_ecma_codegen", - "swc_ecma_ext_transforms", - "swc_ecma_lints", - "swc_ecma_loader", - "swc_ecma_minifier", - "swc_ecma_parser", - "swc_ecma_preset_env", - "swc_ecma_transforms", - "swc_ecma_transforms_base", - "swc_ecma_transforms_compat", - "swc_ecma_transforms_optimization", - "swc_ecma_utils", - "swc_ecma_visit", - "swc_error_reporters", - "swc_node_comments", - "swc_timer", - "swc_transform_common", - "swc_typescript", - "swc_visit", - "tracing", - "url", -] - -[[package]] -name = "swc_allocator" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "117d5d3289663f53022ebf157df8a42b3872d7ac759e63abf96b5987b85d4af3" -dependencies = [ - "bumpalo", - "hashbrown 0.14.5", - "ptr_meta", - "rustc-hash", - "triomphe", -] - -[[package]] -name = "swc_atoms" -version = "3.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a640bf2e4430a149c87b5eaf377477ce8615ca7cb808054dd20e79e42da5d6ba" -dependencies = [ - "hstr", - "once_cell", - "rustc-hash", - "serde", -] - -[[package]] -name = "swc_cached" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b6a5ef4cfec51d3fa30b73600f206453a37fc30cf1141e4644a57b1ed88616" -dependencies = [ - "ahash", - "anyhow", - "dashmap 5.5.3", - "once_cell", - "regex", - "serde", -] - -[[package]] -name = "swc_common" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a521e8120dc0401580864a643b5bffa035c29fc3fc41697c972743d4f008ed22" -dependencies = [ - "ahash", - "ast_node", - "better_scoped_tls", - "cfg-if", - "either", - "from_variant", - "new_debug_unreachable", - "num-bigint", - "once_cell", - "parking_lot 0.12.3", - "rustc-hash", - "serde", - "siphasher", - "sourcemap", - "swc_allocator", - "swc_atoms", - "swc_eq_ignore_macros", - "swc_visit", - "tracing", - "unicode-width", - "url", -] - -[[package]] -name = "swc_compiler_base" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e6b81e3504db35cb4931ac448cc88a80e89d04de00412b74102b9dc86ba131" -dependencies = [ - "anyhow", - "base64 0.21.7", - "once_cell", - "pathdiff", - "rustc-hash", - "serde", - "serde_json", - "sourcemap", - "swc_allocator", - "swc_atoms", - "swc_common", - "swc_config", - "swc_ecma_ast", - "swc_ecma_codegen", - "swc_ecma_minifier", - "swc_ecma_parser", - "swc_ecma_visit", - "swc_timer", -] - -[[package]] -name = "swc_config" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4aa30931f9b26af8edcb4cce605909d15dcfd7577220b22c50a2988f2a53c4c1" -dependencies = [ - "anyhow", - "indexmap", - "serde", - "serde_json", - "sourcemap", - "swc_cached", - "swc_config_macro", -] - -[[package]] -name = "swc_config_macro" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2ebd37ef52a8555c8c9be78b694d64adcb5e3bc16c928f030d82f1d65fac57" -dependencies = [ - "proc-macro2", - "quote", - "swc_macros_common", - "syn 2.0.96", -] - -[[package]] -name = "swc_ecma_ast" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82f448db2d1c52ffd2bd3788d89cafd8b5a75b97f0dc8aae00874dda2647f6b6" -dependencies = [ - "bitflags 2.7.0", - "is-macro", - "num-bigint", - "phf", - "scoped-tls", - "serde", - "string_enum", - "swc_atoms", - "swc_common", - "swc_visit", - "unicode-id-start", -] - -[[package]] -name = "swc_ecma_codegen" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f93692de35a77d920ce8d96a46217735e5f86bf42f76cc8f1a60628c347c4c8" -dependencies = [ - "memchr", - "num-bigint", - "once_cell", - "regex", - "serde", - "sourcemap", - "swc_allocator", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_codegen_macros", - "tracing", -] - -[[package]] -name = "swc_ecma_codegen_macros" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f9a42f479a6475647e248fa9750982c87cd985e19d1016a1fc18a70682305d1" -dependencies = [ - "proc-macro2", - "quote", - "swc_macros_common", - "syn 2.0.96", -] - -[[package]] -name = "swc_ecma_compat_bugfixes" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "448864548ea7c1866d140e36829196e5d7b35a55b4a1563945a8ce39322b8e7a" -dependencies = [ - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_compat_es2015", - "swc_ecma_transforms_base", - "swc_ecma_utils", - "swc_ecma_visit", - "swc_trace_macro", - "tracing", -] - -[[package]] -name = "swc_ecma_compat_common" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a04016559d293d2ac507d931e46ecfd92eb5e96ccf5452bc81c18c47806b858" -dependencies = [ - "swc_common", - "swc_ecma_ast", - "swc_ecma_utils", - "swc_ecma_visit", - "swc_trace_macro", -] - -[[package]] -name = "swc_ecma_compat_es2015" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aceb1b432819541aa1dd129b4a226f41cf881a53040efc711a625ee5f23e9afd" -dependencies = [ - "arrayvec", - "indexmap", - "is-macro", - "rustc-hash", - "serde", - "serde_derive", - "smallvec", - "swc_atoms", - "swc_common", - "swc_config", - "swc_ecma_ast", - "swc_ecma_compat_common", - "swc_ecma_transforms_base", - "swc_ecma_transforms_classes", - "swc_ecma_transforms_macros", - "swc_ecma_utils", - "swc_ecma_visit", - "swc_trace_macro", - "tracing", -] - -[[package]] -name = "swc_ecma_compat_es2016" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc0d69f6541b781e4e95c1954e8ab916095b7369cdf69e14bf83be17b2dd943" -dependencies = [ - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_transforms_base", - "swc_ecma_transforms_macros", - "swc_ecma_utils", - "swc_ecma_visit", - "swc_trace_macro", - "tracing", -] - -[[package]] -name = "swc_ecma_compat_es2017" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ac80866f541899e4c59a954c0a37a4fd21ea1455dc44400c088b72299c1d2cc" -dependencies = [ - "serde", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_transforms_base", - "swc_ecma_transforms_macros", - "swc_ecma_utils", - "swc_ecma_visit", - "swc_trace_macro", - "tracing", -] - -[[package]] -name = "swc_ecma_compat_es2018" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdc28efd763ad5fea7acc2f1fc73ade5b334201369b88aff472053b64b304a76" -dependencies = [ - "serde", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_compat_common", - "swc_ecma_transforms_base", - "swc_ecma_transforms_macros", - "swc_ecma_utils", - "swc_ecma_visit", - "swc_trace_macro", - "tracing", -] - -[[package]] -name = "swc_ecma_compat_es2019" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2439138f8b8c7cf1401395e0bbb6d3e35d20277268f8e8aa41fa64841af992e" -dependencies = [ - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_transforms_base", - "swc_ecma_utils", - "swc_ecma_visit", - "swc_trace_macro", - "tracing", -] - -[[package]] -name = "swc_ecma_compat_es2020" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7a37218dcb1ad82943b9ebfbfbc283ba1ba542ed3c60aacea0b3a06e7f38809" -dependencies = [ - "serde", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_compat_es2022", - "swc_ecma_transforms_base", - "swc_ecma_utils", - "swc_ecma_visit", - "swc_trace_macro", - "tracing", -] - -[[package]] -name = "swc_ecma_compat_es2021" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c4c9d40dcf5094e863ceac27c92053ef970991e46f190ddad678b8e3ca3ecde" -dependencies = [ - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_transforms_base", - "swc_ecma_utils", - "swc_ecma_visit", - "swc_trace_macro", - "tracing", -] - -[[package]] -name = "swc_ecma_compat_es2022" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93edab9540513a7622addbf2494fa61f487daf98d2c1ed819958b2a3d271835e" -dependencies = [ - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_compat_common", - "swc_ecma_transforms_base", - "swc_ecma_transforms_classes", - "swc_ecma_transforms_macros", - "swc_ecma_utils", - "swc_ecma_visit", - "swc_trace_macro", - "tracing", -] - -[[package]] -name = "swc_ecma_compat_es3" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f158dcb284c676bfb425c42adf307a3259d71c999c0970370ed3e09886d83c9" -dependencies = [ - "swc_common", - "swc_ecma_ast", - "swc_ecma_transforms_base", - "swc_ecma_utils", - "swc_ecma_visit", - "swc_trace_macro", - "tracing", -] - -[[package]] -name = "swc_ecma_ext_transforms" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3cecd84290edc5c27d0cb6df79fcd82fe500772cd2526642955227e50359675" -dependencies = [ - "phf", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_utils", - "swc_ecma_visit", -] - -[[package]] -name = "swc_ecma_lints" -version = "6.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0acd3d5633bdc22eb9786e6baf819334ba90162c9c382978945fe93926d9c7eb" -dependencies = [ - "auto_impl", - "dashmap 5.5.3", - "parking_lot 0.12.3", - "rayon", - "regex", - "serde", - "swc_atoms", - "swc_common", - "swc_config", - "swc_ecma_ast", - "swc_ecma_utils", - "swc_ecma_visit", -] - -[[package]] -name = "swc_ecma_loader" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a19b132079bfcd19d6fdabce7e55ece93a30787f3b8684c8646ddaf2237812d" -dependencies = [ - "anyhow", - "dashmap 5.5.3", - "lru", - "normpath", - "once_cell", - "parking_lot 0.12.3", - "path-clean 0.1.0", - "pathdiff", - "serde", - "serde_json", - "swc_atoms", - "swc_cached", - "swc_common", - "tracing", -] - -[[package]] -name = "swc_ecma_minifier" -version = "6.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "114c2005290d3a16dd1ced9733a0dd11862b9caf01fe43d6b796d2c9db6b7217" -dependencies = [ - "arrayvec", - "indexmap", - "num-bigint", - "num_cpus", - "once_cell", - "parking_lot 0.12.3", - "phf", - "radix_fmt", - "regex", - "rustc-hash", - "ryu-js", - "serde", - "serde_json", - "swc_allocator", - "swc_atoms", - "swc_common", - "swc_config", - "swc_ecma_ast", - "swc_ecma_codegen", - "swc_ecma_parser", - "swc_ecma_transforms_base", - "swc_ecma_transforms_optimization", - "swc_ecma_usage_analyzer", - "swc_ecma_utils", - "swc_ecma_visit", - "swc_timer", - "tracing", -] - -[[package]] -name = "swc_ecma_parser" -version = "6.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b92d3a25349d7f612c38d940f09f9c19c7b7aa3bf4d22fbe31ea44fd5354de02" -dependencies = [ - "either", - "new_debug_unreachable", - "num-bigint", - "num-traits", - "phf", - "serde", - "smallvec", - "smartstring", - "stacker", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "tracing", - "typed-arena", -] - -[[package]] -name = "swc_ecma_preset_env" -version = "8.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ac4bd1620798c38f767417f9b364b87fd2505a9e748d6b1d7549f155a0aa96" -dependencies = [ - "anyhow", - "dashmap 5.5.3", - "indexmap", - "once_cell", - "preset_env_base", - "rustc-hash", - "semver 1.0.24", - "serde", - "serde_json", - "st-map", - "string_enum", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_transforms", - "swc_ecma_utils", - "swc_ecma_visit", -] - -[[package]] -name = "swc_ecma_transforms" -version = "8.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dccedb5a1e52795e132615a3ca01e2adb8fc9214ee75c258f8a3124a9b42c47e" -dependencies = [ - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_transforms_base", - "swc_ecma_transforms_compat", - "swc_ecma_transforms_module", - "swc_ecma_transforms_optimization", - "swc_ecma_transforms_proposal", - "swc_ecma_transforms_react", - "swc_ecma_transforms_typescript", - "swc_ecma_utils", - "swc_ecma_visit", -] - -[[package]] -name = "swc_ecma_transforms_base" -version = "6.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31557485025a2fd1f833d63601c53010857e45633f44bcc87510f3578bde0c5" -dependencies = [ - "better_scoped_tls", - "bitflags 2.7.0", - "indexmap", - "once_cell", - "phf", - "rustc-hash", - "serde", - "smallvec", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_parser", - "swc_ecma_utils", - "swc_ecma_visit", - "tracing", -] - -[[package]] -name = "swc_ecma_transforms_classes" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cd3a9eacaf2aa2ec7a8139e3c3883ddf4f8e948a08ee378725a4ad658beb3d9" -dependencies = [ - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_transforms_base", - "swc_ecma_utils", - "swc_ecma_visit", -] - -[[package]] -name = "swc_ecma_transforms_compat" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e245e2cb96ff093c0c3170dbe4c063a0b937ce4527d37f52f467529d4977634b" -dependencies = [ - "arrayvec", - "indexmap", - "is-macro", - "num-bigint", - "serde", - "smallvec", - "swc_atoms", - "swc_common", - "swc_config", - "swc_ecma_ast", - "swc_ecma_compat_bugfixes", - "swc_ecma_compat_common", - "swc_ecma_compat_es2015", - "swc_ecma_compat_es2016", - "swc_ecma_compat_es2017", - "swc_ecma_compat_es2018", - "swc_ecma_compat_es2019", - "swc_ecma_compat_es2020", - "swc_ecma_compat_es2021", - "swc_ecma_compat_es2022", - "swc_ecma_compat_es3", - "swc_ecma_transforms_base", - "swc_ecma_transforms_classes", - "swc_ecma_transforms_macros", - "swc_ecma_utils", - "swc_ecma_visit", - "swc_trace_macro", - "tracing", -] - -[[package]] -name = "swc_ecma_transforms_macros" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6845dfb88569f3e8cd05901505916a8ebe98be3922f94769ca49f84e8ccec8f7" -dependencies = [ - "proc-macro2", - "quote", - "swc_macros_common", - "syn 2.0.96", -] - -[[package]] -name = "swc_ecma_transforms_module" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5480053dfa9b7ae34c6d5cdaa33bee3d7dfd33a259cabe9122806f36625912c1" -dependencies = [ - "Inflector", - "anyhow", - "bitflags 2.7.0", - "indexmap", - "is-macro", - "path-clean 1.0.1", - "pathdiff", - "regex", - "serde", - "swc_atoms", - "swc_cached", - "swc_common", - "swc_ecma_ast", - "swc_ecma_loader", - "swc_ecma_parser", - "swc_ecma_transforms_base", - "swc_ecma_utils", - "swc_ecma_visit", - "tracing", -] - -[[package]] -name = "swc_ecma_transforms_optimization" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "350a4965abfada7d5b23b3140896652acc11e110ac042a160bcea5bf8b08d367" -dependencies = [ - "dashmap 5.5.3", - "indexmap", - "once_cell", - "petgraph", - "rustc-hash", - "serde_json", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_parser", - "swc_ecma_transforms_base", - "swc_ecma_transforms_macros", - "swc_ecma_utils", - "swc_ecma_visit", - "swc_fast_graph", - "tracing", -] - -[[package]] -name = "swc_ecma_transforms_proposal" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cba55188e66696c43333d19492f69a6f4a7785f9486ebc1b3cf7c5f743927505" -dependencies = [ - "either", - "rustc-hash", - "serde", - "smallvec", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_transforms_base", - "swc_ecma_transforms_classes", - "swc_ecma_transforms_macros", - "swc_ecma_utils", - "swc_ecma_visit", -] - -[[package]] -name = "swc_ecma_transforms_react" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cabf9375cfb71fc0e3d98e07e6fca39a18daa23d4878d8d2daa4c2b6c07b379" -dependencies = [ - "base64 0.21.7", - "dashmap 5.5.3", - "indexmap", - "once_cell", - "serde", - "sha1", - "string_enum", - "swc_allocator", - "swc_atoms", - "swc_common", - "swc_config", - "swc_ecma_ast", - "swc_ecma_parser", - "swc_ecma_transforms_base", - "swc_ecma_transforms_macros", - "swc_ecma_utils", - "swc_ecma_visit", -] - -[[package]] -name = "swc_ecma_transforms_typescript" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77346c37397fb238f991d6dccc027881caca539628e9a6c629299c7b94bdb08a" -dependencies = [ - "ryu-js", - "serde", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_transforms_base", - "swc_ecma_transforms_react", - "swc_ecma_utils", - "swc_ecma_visit", -] - -[[package]] -name = "swc_ecma_usage_analyzer" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f58c91cfddea5723e22dbb8b1738642714d0acd1463d26d3bc7518b83468414" -dependencies = [ - "indexmap", - "rustc-hash", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_utils", - "swc_ecma_visit", - "swc_timer", - "tracing", -] - -[[package]] -name = "swc_ecma_utils" -version = "6.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f82c9cd6029741a0ae31191796de31c7db42ad54053dd9ee16db8e8b840378e" -dependencies = [ - "indexmap", - "num_cpus", - "once_cell", - "rustc-hash", - "ryu-js", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_visit", - "tracing", - "unicode-id", -] - -[[package]] -name = "swc_ecma_visit" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b04c06c1805bda18c27165560f1617a57453feb9fb0638d90839053641af42d4" -dependencies = [ - "new_debug_unreachable", - "num-bigint", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_visit", - "tracing", -] - -[[package]] -name = "swc_eq_ignore_macros" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e96e15288bf385ab85eb83cff7f9e2d834348da58d0a31b33bdb572e66ee413e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - -[[package]] -name = "swc_error_reporters" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f741b530b2df577a287e193c4a111182de01b43361617af228ec9e6e6222fa4" -dependencies = [ - "anyhow", - "miette", - "once_cell", - "parking_lot 0.12.3", - "swc_common", -] - -[[package]] -name = "swc_fast_graph" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22e0a0478b1b06610453a97c8371cafa742e371a79aff860ccfbabe1ab160a7" -dependencies = [ - "indexmap", - "petgraph", - "rustc-hash", - "swc_common", -] - -[[package]] -name = "swc_macros_common" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a509f56fca05b39ba6c15f3e58636c3924c78347d63853632ed2ffcb6f5a0ac7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - -[[package]] -name = "swc_node_comments" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56d29b30a2b3f407cc8a64e01414a4150d10cc5dd72d9c2d34734d8c0af951" -dependencies = [ - "dashmap 5.5.3", - "swc_atoms", - "swc_common", -] - -[[package]] -name = "swc_timer" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4db06b46cc832f7cf83c2ce21905fc465d01443a2bdccf63644383e1f5847532" -dependencies = [ - "tracing", -] - -[[package]] -name = "swc_trace_macro" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c78717a841565df57f811376a3d19c9156091c55175e12d378f3a522de70cef" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - -[[package]] -name = "swc_transform_common" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f23ade45bb0d8b5299022dc0f674c2125512412f5b26f42cfaffa16dcc00d56b" -dependencies = [ - "better_scoped_tls", - "once_cell", - "rustc-hash", - "serde", - "serde_json", -] - -[[package]] -name = "swc_typescript" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78090bda84e8fc330a4c3a1db2551007e0035a92f02f74daed19ef8293087817" -dependencies = [ - "petgraph", - "rustc-hash", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_utils", - "swc_ecma_visit", - "thiserror", -] - -[[package]] -name = "swc_visit" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9138b6a36bbe76dd6753c4c0794f7e26480ea757bee499738bedbbb3ae3ec5f3" -dependencies = [ - "either", - "new_debug_unreachable", -] - [[package]] name = "syn" version = "1.0.109" @@ -3871,77 +894,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "sync_wrapper" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" -dependencies = [ - "futures-core", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - -[[package]] -name = "system-configuration" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" -dependencies = [ - "bitflags 2.7.0", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "tempfile" -version = "3.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704" -dependencies = [ - "cfg-if", - "fastrand", - "getrandom", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "textwrap" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" -dependencies = [ - "unicode-linebreak", - "unicode-width", -] - [[package]] name = "thiserror" version = "1.0.69" @@ -3972,183 +924,16 @@ dependencies = [ "once_cell", ] -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tokio" -version = "1.43.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "parking_lot 0.12.3", - "pin-project-lite", - "signal-hook-registry", - "socket2", - "tokio-macros", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-macros" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" -dependencies = [ - "rustls", - "rustls-pki-types", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "toml" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", -] - -[[package]] -name = "toml_datetime" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.22.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" -dependencies = [ - "indexmap", - "serde", - "serde_spanned", - "toml_datetime", - "winnow", -] - -[[package]] -name = "tower" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" -dependencies = [ - "futures-core", - "futures-util", - "pin-project-lite", - "sync_wrapper", - "tokio", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-http" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697" -dependencies = [ - "async-compression", - "bitflags 2.7.0", - "bytes", - "futures-core", - "http", - "http-body", - "pin-project-lite", - "tokio", - "tokio-util", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - [[package]] name = "tracing" version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ - "log", "pin-project-lite", - "tracing-attributes", "tracing-core", ] -[[package]] -name = "tracing-attributes" -version = "0.1.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - [[package]] name = "tracing-core" version = "0.1.33" @@ -4180,226 +965,24 @@ dependencies = [ "tracing-core", ] -[[package]] -name = "triomphe" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef8f7726da4807b58ea5c96fdc122f80702030edc33b35aff9190a51148ccc85" -dependencies = [ - "serde", - "stable_deref_trait", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "typed-arena" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "unicode-id" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10103c57044730945224467c09f71a4db0071c123a0648cc3e818913bde6b561" - -[[package]] -name = "unicode-id-start" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f322b60f6b9736017344fa0635d64be2f458fbc04eef65f6be22976dd1ffd5b" - [[package]] name = "unicode-ident" version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" -[[package]] -name = "unicode-linebreak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" - -[[package]] -name = "unicode-width" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" - -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "unty" -version = "0.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a88342087869553c259588a3ec9ca73ce9b2d538b7051ba5789ff236b6c129" - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "utf8parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" - -[[package]] -name = "uuid" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" - [[package]] name = "valuable" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "virtue" -version = "0.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7302ac74a033bf17b6e609ceec0f891ca9200d502d31f02dc7908d3d98767c9d" - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" -[[package]] -name = "wasm-bindgen" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.96", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" - -[[package]] -name = "web-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - [[package]] name = "winapi" version = "0.3.9" @@ -4422,54 +1005,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-registry" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" -dependencies = [ - "windows-result", - "windows-strings", - "windows-targets", -] - -[[package]] -name = "windows-result" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-strings" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" -dependencies = [ - "windows-result", - "windows-targets", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets", -] - [[package]] name = "windows-sys" version = "0.59.0" @@ -4543,60 +1078,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "winnow" -version = "0.6.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" -dependencies = [ - "memchr", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", - "synstructure", -] - [[package]] name = "zerocopy" version = "0.7.35" @@ -4617,80 +1098,3 @@ dependencies = [ "quote", "syn 2.0.96", ] - -[[package]] -name = "zerofrom" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", - "synstructure", -] - -[[package]] -name = "zeroize" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.96", -] - -[[package]] -name = "zstd" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "7.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059" -dependencies = [ - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.13+zstd.1.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" -dependencies = [ - "cc", - "pkg-config", -] diff --git a/Cargo.toml b/Cargo.toml index 5955bcc61..1a3669c99 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,39 +1,43 @@ -[package] -name = "kibo_money" -version = "0.6.0" -edition = "2021" +# [package] +# name = "kibo_money" +# version = "0.6.0" +# edition = "2021" + +[workspace] +members = ["bindex", "biter", "iterable", "snkrj", "storable_vec"] +resolver = "2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html -[dependencies] -allocative = "0.3.4" -axum = "0.7.9" -bincode = { git = "https://github.com/bincode-org/bincode.git", features = [ - "serde", -] } -bitcoin_hashes = { version = "0.15.0" } -biter = { path = "./src/crates/biter" } -chrono = { version = "0.4.39", features = ["serde"] } -clap = { version = "4.5.26", features = ["derive"] } -color-eyre = "0.6.3" -ctrlc = { version = "3.4.5", features = ["termination"] } -derive_deref = "1.1.1" -env_logger = "0.11.6" -inferno = "0.12.1" -itertools = "0.13.0" -log = { version = "0.4.25", features = ["std", "serde"] } -ordered-float = "4.6.0" -rayon = "1.10.0" -regex = "1.11.1" -reqwest = { version = "0.12.12", features = ["blocking", "json"] } -rlimit = "0.10.2" -snkrj = { path = "./src/crates/snkrj" } -serde = { version = "1.0.217", features = ["derive"] } -serde_json = "1.0.135" -struct_iterable = { path = "./src/crates/iterable" } -swc = "9.0.2" -swc_common = "5.0.0" -tokio = { version = "1.43.0", features = ["full"] } -toml = "0.8.19" -tower-http = { version = "0.6.2", features = ["compression-full"] } -zstd = "0.13.2" +# [dependencies] +# allocative = "0.3.4" +# axum = "0.7.9" +# bincode = { git = "https://github.com/bincode-org/bincode.git", features = [ +# "serde", +# ] } +# bitcoin_hashes = { version = "0.15.0" } +# biter = { path = "./src/crates/biter" } +# chrono = { version = "0.4.39", features = ["serde"] } +# clap = { version = "4.5.26", features = ["derive"] } +# color-eyre = "0.6.3" +# ctrlc = { version = "3.4.5", features = ["termination"] } +# derive_deref = "1.1.1" +# env_logger = "0.11.6" +# inferno = "0.12.1" +# itertools = "0.13.0" +# log = { version = "0.4.25", features = ["std", "serde"] } +# ordered-float = "4.6.0" +# rayon = "1.10.0" +# regex = "1.11.1" +# reqwest = { version = "0.12.12", features = ["blocking", "json"] } +# rlimit = "0.10.2" +# snkrj = { path = "./src/crates/snkrj" } +# serde = { version = "1.0.217", features = ["derive"] } +# serde_json = "1.0.135" +# struct_iterable = { path = "./src/crates/iterable" } +# swc = "9.0.2" +# swc_common = "5.0.0" +# tokio = { version = "1.43.0", features = ["full"] } +# toml = "0.8.19" +# tower-http = { version = "0.6.2", features = ["compression-full"] } +# zstd = "0.13.2" diff --git a/src/crates/bindex/.gitignore b/bindex/.gitignore similarity index 100% rename from src/crates/bindex/.gitignore rename to bindex/.gitignore diff --git a/src/crates/bindex/Cargo.lock b/bindex/Cargo.lock similarity index 100% rename from src/crates/bindex/Cargo.lock rename to bindex/Cargo.lock diff --git a/src/crates/bindex/Cargo.toml b/bindex/Cargo.toml similarity index 100% rename from src/crates/bindex/Cargo.toml rename to bindex/Cargo.toml diff --git a/src/crates/bindex/rustfmt.toml b/bindex/rustfmt.toml similarity index 100% rename from src/crates/bindex/rustfmt.toml rename to bindex/rustfmt.toml diff --git a/src/crates/bindex/src/main.rs b/bindex/src/main.rs similarity index 87% rename from src/crates/bindex/src/main.rs rename to bindex/src/main.rs index 34e224d3e..30f1e1de6 100644 --- a/src/crates/bindex/src/main.rs +++ b/bindex/src/main.rs @@ -29,7 +29,8 @@ enum TxInOrAddressindextoutindex<'a> { } const UNSAFE_BLOCKS: u32 = 100; -const SNAPSHOT_BLOCK_RANGE: usize = 4_200; // MUST 210_000 % THIS == 0 +const DAILY_BLOCK_TARGET: usize = 144; +const SNAPSHOT_BLOCK_RANGE: usize = DAILY_BLOCK_TARGET * 10; fn main() -> color_eyre::Result<()> { color_eyre::install()?; @@ -38,7 +39,7 @@ fn main() -> color_eyre::Result<()> { let check_collisions = true; - let data_dir = Path::new("../../../../bitcoin"); + let data_dir = Path::new("../../bitcoin"); let cookie = Path::new(data_dir).join(".cookie"); let rpc = Client::new("http://localhost:8332", Auth::CookieFile(cookie))?; @@ -62,59 +63,63 @@ fn main() -> color_eyre::Result<()> { let mut txindex = vecs .height_to_first_txindex .get(height)? - .cloned() + .map(|v| *v) .unwrap_or(Txindex::default()); let mut txoutindex = vecs .height_to_first_txoutindex .get(height)? - .cloned() + .map(|v| *v) .unwrap_or(Txoutindex::default()); let mut addressindex = vecs .height_to_first_addressindex .get(height)? - .cloned() + .map(|v| *v) .unwrap_or(Addressindex::default()); let export = |stores: Stores, vecs: &mut Vecs, height: Height| -> color_eyre::Result<()> { exit.block(); println!("Exporting..."); - // Memory: 2.87 - // Real Memory: 16.23 - // Private Memory: 10.8 - if height > Height::from(400_000_u32) { - pause(); - } - vecs.reset_cache(); - println!("Resetted cache"); - // Memory: 2.87 - // Real Memory: 13.24 - // Private Memory: 10.8 - if height > Height::from(400_000_u32) { - pause(); - } + // Memory: 3.76 GB + // Real Memory: 22.47 GB + // Private Memory: 12.44 GB + // if height > Height::from(400_000_u32) { + // pause(); + // } + // vecs.reset_cache(); + // At: 403200 + // Memory: 3.78 GB + // Real Memory: 12.65 GB + // Private Memory: 11.39 GB + // if height > Height::from(400_000_u32) { + // pause(); + // } vecs.flush(height)?; - println!("Vecs flushed"); - // Memory: 3.36 - // Real Memory: 13.55 - // Private Memory: 10.66 + // At: 403200 + // Memory: 3.79 GB + // Real Memory: 12.37 GB + // Private Memory: 10.95 GB // Gone up wtf - if height > Height::from(400_000_u32) { - pause(); - } + // if height > Height::from(400_000_u32) { + // pause(); + // } stores.export(height); println!("Export done"); - if height > Height::from(400_000_u32) { - pause(); - } + // At: 403200 + // Memory: 2.23 GB + // Real Memory: 1.05 GB + // Private Memory: 0.109 GB + // if height > Height::from(400_000_u32) { + // pause(); + // } exit.unblock(); Ok(()) }; let mut stores_opt = Some(stores); - biter::new(data_dir, Some(height.into()), None, rpc) + biter::new(data_dir, Some(height.into()), Some(400_000), rpc) .iter() .try_for_each(|(_height, block, blockhash)| -> color_eyre::Result<()> { println!("Processing block {_height}..."); @@ -126,7 +131,8 @@ fn main() -> color_eyre::Result<()> { let mut stores = stores_opt.take().context("option should have wtx")?; if let Some(saved_blockhash) = vecs.height_to_blockhash.get(height)? { - if &blockhash != saved_blockhash { + // if &blockhash != saved_blockhash { + if &blockhash != saved_blockhash.as_ref() { todo!("Rollback not implemented"); // parts.rollback_from(&mut wtx, height, &exit)?; } @@ -162,7 +168,7 @@ fn main() -> color_eyre::Result<()> { tx.output .iter() .enumerate() - .map(move |(vout, txout)| (Txindex::from(index), vout as u32, txout)) + .map(move |(vout, txout)| (Txindex::from(index), vout as u32, txout, tx)) }).collect::>(); let tx_len = block.txdata.len(); @@ -272,7 +278,7 @@ fn main() -> color_eyre::Result<()> { outputs.into_par_iter().enumerate() .map( #[allow(clippy::type_complexity)] - |(block_txoutindex, (block_txindex, vout, txout))| -> color_eyre::Result<(Txoutindex, + |(block_txoutindex, (block_txindex, vout, txout, tx))| -> color_eyre::Result<(Txoutindex, (&TxOut, Txindexvout, Addresstype, color_eyre::Result, Option))> { let txindex_local = txindex + block_txindex; let txindexvout = Txindexvout::from((txindex_local, vout)); @@ -294,25 +300,28 @@ fn main() -> color_eyre::Result<()> { // Checking if not in the future .and_then(|addressindex_local| (addressindex_local < addressindex) .then_some(addressindex_local)) - }); + }); // OK - if let Some(Some(addressindex)) = check_collisions.then_some(addressindex_opt) { + if let Some(Some(addressindex_local)) = check_collisions.then_some(addressindex_opt) { let addressbytes = addressbytes_res.as_ref().unwrap(); let prev_addresstype = *vecs.addressindex_to_addresstype.get( - addressindex, + addressindex_local, )?.context("Expect to have address type")?; let addresstypeindex = *vecs.addressindex_to_addresstypeindex.get( - addressindex, + addressindex_local, )?.context("Expect to have address type index")?; + // Good first time + // Wrong after rerun let prev_addressbytes_opt= vecs.get_addressbytes(prev_addresstype, addresstypeindex)?; let prev_addressbytes = prev_addressbytes_opt.as_ref().context("Expect to have addressbytes")?; - if (vecs.addressindex_to_addresstype.hasnt(addressindex) && addresstype != prev_addresstype) || (stores.addressbytes_prefix_to_addressindex.needs(height) && prev_addressbytes != addressbytes) { - dbg!(addresstype, prev_addresstype, prev_addressbytes, addressbytes, addressindex, addresstypeindex, txout, AddressbytesPrefix::from((addressbytes, addresstype)), AddressbytesPrefix::from((prev_addressbytes, prev_addresstype))); + if (vecs.addressindex_to_addresstype.hasnt(addressindex_local) && addresstype != prev_addresstype) || (stores.addressbytes_prefix_to_addressindex.needs(height) && prev_addressbytes != addressbytes) { + let txid = tx.compute_txid(); + dbg!(_height, txid, vout, block_txindex, addresstype, prev_addresstype, prev_addressbytes, addressbytes, addressindex, addressindex_local, addresstypeindex, txout, AddressbytesPrefix::from((addressbytes, addresstype)), AddressbytesPrefix::from((prev_addressbytes, prev_addresstype))); panic!() } } @@ -373,7 +382,7 @@ fn main() -> color_eyre::Result<()> { let mut addressindex_local = addressindex; - let mut addressbytes_prefix= None; + let mut addressbytes_prefix = None; if let Some(addressindex) = addressindex_opt.or_else(|| addressbytes_res.as_ref().ok().and_then(|addressbytes| { // Check if address was first seen before in this iterator @@ -397,6 +406,22 @@ fn main() -> color_eyre::Result<()> { if let Ok(addressbytes) = addressbytes_res { let addressbytes_prefix = addressbytes_prefix.unwrap(); + // if addressindex_local == Addressindex::from(257905_u32) || addressbytes_prefix == AddressbytesPrefix::from( + // [ + // 116_u8, + // 86, + // 96, + // 52, + // 2, + // 87, + // 151, + // 177, + // ], + // ) { + // dbg!(addressindex_local, addressbytes, addressbytes_prefix, addresstypeindex); + // panic!(); + // } + already_added_addressbytes_prefix.insert(addressbytes_prefix.clone(), addressindex_local); stores.addressbytes_prefix_to_addressindex.insert_if_needed( @@ -491,6 +516,10 @@ fn main() -> color_eyre::Result<()> { dbg!(txindex_local, txid, len); })?; + // #[allow(clippy::redundant_locals)] + // let prev_txid = prev_txid; + let prev_txid = prev_txid.as_ref(); + // If another Txid needs to be added to the list // We need to check that it's also a coinbase tx otherwise par_iter inputs needs to be updated let only_known_dup_txids = [ @@ -539,17 +568,13 @@ fn main() -> color_eyre::Result<()> { Ok(()) })?; - dbg!(i.elapsed()); - - pause(); - let stores = stores_opt.take().context("option should have wtx")?; export(stores, &mut vecs, height)?; - pause(); - dbg!(i.elapsed()); + pause(); + Ok(()) } diff --git a/src/crates/bindex/src/structs/addressbytes.rs b/bindex/src/structs/addressbytes.rs similarity index 100% rename from src/crates/bindex/src/structs/addressbytes.rs rename to bindex/src/structs/addressbytes.rs diff --git a/src/crates/bindex/src/structs/addressindex.rs b/bindex/src/structs/addressindex.rs similarity index 100% rename from src/crates/bindex/src/structs/addressindex.rs rename to bindex/src/structs/addressindex.rs diff --git a/src/crates/bindex/src/structs/addressindextxoutindex.rs b/bindex/src/structs/addressindextxoutindex.rs similarity index 100% rename from src/crates/bindex/src/structs/addressindextxoutindex.rs rename to bindex/src/structs/addressindextxoutindex.rs diff --git a/src/crates/bindex/src/structs/addresstype.rs b/bindex/src/structs/addresstype.rs similarity index 100% rename from src/crates/bindex/src/structs/addresstype.rs rename to bindex/src/structs/addresstype.rs diff --git a/src/crates/bindex/src/structs/addresstypeindex.rs b/bindex/src/structs/addresstypeindex.rs similarity index 100% rename from src/crates/bindex/src/structs/addresstypeindex.rs rename to bindex/src/structs/addresstypeindex.rs diff --git a/src/crates/bindex/src/structs/amount.rs b/bindex/src/structs/amount.rs similarity index 100% rename from src/crates/bindex/src/structs/amount.rs rename to bindex/src/structs/amount.rs diff --git a/src/crates/bindex/src/structs/date.rs b/bindex/src/structs/date.rs similarity index 90% rename from src/crates/bindex/src/structs/date.rs rename to bindex/src/structs/date.rs index 3ef99bb54..ae3a76ff5 100644 --- a/src/crates/bindex/src/structs/date.rs +++ b/bindex/src/structs/date.rs @@ -2,7 +2,7 @@ use jiff::tz::TimeZone; use super::Timestamp; -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct Date(jiff::civil::Date); impl From<&Timestamp> for Date { diff --git a/src/crates/bindex/src/structs/exit.rs b/bindex/src/structs/exit.rs similarity index 100% rename from src/crates/bindex/src/structs/exit.rs rename to bindex/src/structs/exit.rs diff --git a/src/crates/bindex/src/structs/height.rs b/bindex/src/structs/height.rs similarity index 100% rename from src/crates/bindex/src/structs/height.rs rename to bindex/src/structs/height.rs diff --git a/src/crates/bindex/src/structs/mod.rs b/bindex/src/structs/mod.rs similarity index 100% rename from src/crates/bindex/src/structs/mod.rs rename to bindex/src/structs/mod.rs diff --git a/src/crates/bindex/src/structs/prefix.rs b/bindex/src/structs/prefix.rs similarity index 94% rename from src/crates/bindex/src/structs/prefix.rs rename to bindex/src/structs/prefix.rs index 06c113458..98a579ed7 100644 --- a/src/crates/bindex/src/structs/prefix.rs +++ b/bindex/src/structs/prefix.rs @@ -28,6 +28,11 @@ impl From<(&Addressbytes, Addresstype)> for AddressbytesPrefix { )) } } +impl From<[u8; 8]> for AddressbytesPrefix { + fn from(value: [u8; 8]) -> Self { + Self(value) + } +} #[derive(Debug, Deref, Clone, PartialEq, Eq, PartialOrd, Ord)] pub struct BlockHashPrefix([u8; 8]); diff --git a/src/crates/bindex/src/structs/slice.rs b/bindex/src/structs/slice.rs similarity index 100% rename from src/crates/bindex/src/structs/slice.rs rename to bindex/src/structs/slice.rs diff --git a/src/crates/bindex/src/structs/store.rs b/bindex/src/structs/store.rs similarity index 100% rename from src/crates/bindex/src/structs/store.rs rename to bindex/src/structs/store.rs diff --git a/src/crates/bindex/src/structs/stores.rs b/bindex/src/structs/stores.rs similarity index 100% rename from src/crates/bindex/src/structs/stores.rs rename to bindex/src/structs/stores.rs diff --git a/src/crates/bindex/src/structs/timestamp.rs b/bindex/src/structs/timestamp.rs similarity index 100% rename from src/crates/bindex/src/structs/timestamp.rs rename to bindex/src/structs/timestamp.rs diff --git a/src/crates/bindex/src/structs/txindex.rs b/bindex/src/structs/txindex.rs similarity index 100% rename from src/crates/bindex/src/structs/txindex.rs rename to bindex/src/structs/txindex.rs diff --git a/src/crates/bindex/src/structs/txindexvout.rs b/bindex/src/structs/txindexvout.rs similarity index 100% rename from src/crates/bindex/src/structs/txindexvout.rs rename to bindex/src/structs/txindexvout.rs diff --git a/src/crates/bindex/src/structs/txoutindex.rs b/bindex/src/structs/txoutindex.rs similarity index 100% rename from src/crates/bindex/src/structs/txoutindex.rs rename to bindex/src/structs/txoutindex.rs diff --git a/src/crates/bindex/src/structs/vec.rs b/bindex/src/structs/vec.rs similarity index 92% rename from src/crates/bindex/src/structs/vec.rs rename to bindex/src/structs/vec.rs index f8184cd45..c78d93d97 100644 --- a/src/crates/bindex/src/structs/vec.rs +++ b/bindex/src/structs/vec.rs @@ -16,7 +16,7 @@ pub struct StorableVec { impl StorableVec where I: Into, - T: Sized + Debug, + T: Sized + Debug + Clone, { pub fn import(path: &Path, version: Version) -> io::Result { fs::create_dir_all(path)?; @@ -70,10 +70,6 @@ where path.join("height") } - fn reset_cache(&mut self) { - self.vec.reset_cache(); - } - // pub fn needs(&self, height: Height) -> bool { // self.height() // store height in struct // } @@ -93,23 +89,18 @@ impl DerefMut for StorableVec { pub trait AnyBindexVec { fn height(&self) -> color_eyre::Result; - fn reset_cache(&mut self); fn flush(&mut self, height: Height) -> io::Result<()>; } impl AnyBindexVec for StorableVec where I: Into, - T: Sized + Debug, + T: Sized + Debug + Clone, { fn height(&self) -> color_eyre::Result { self.height() } - fn reset_cache(&mut self) { - self.reset_cache(); - } - fn flush(&mut self, height: Height) -> io::Result<()> { self.flush(height) } diff --git a/src/crates/bindex/src/structs/vecs.rs b/bindex/src/structs/vecs.rs similarity index 95% rename from src/crates/bindex/src/structs/vecs.rs rename to bindex/src/structs/vecs.rs index 66c7f5992..59e6ebcc7 100644 --- a/src/crates/bindex/src/structs/vecs.rs +++ b/bindex/src/structs/vecs.rs @@ -168,38 +168,38 @@ impl Vecs { Addresstype::P2PK65 => self .p2pk65index_to_p2pk65addressbytes .get(addresstypeindex)? - .cloned() - .map(Addressbytes::from), + // .map(|v| Addressbytes::from(v.clone())), + .map(|v| Addressbytes::from(v.into_inner())), Addresstype::P2PK33 => self .p2pk33index_to_p2pk33addressbytes .get(addresstypeindex)? - .cloned() - .map(Addressbytes::from), + // .map(|v| Addressbytes::from(v.clone())), + .map(|v| Addressbytes::from(v.into_inner())), Addresstype::P2PKH => self .p2pkhindex_to_p2pkhaddressbytes .get(addresstypeindex)? - .cloned() - .map(Addressbytes::from), + // .map(|v| Addressbytes::from(v.clone())), + .map(|v| Addressbytes::from(v.into_inner())), Addresstype::P2SH => self .p2shindex_to_p2shaddressbytes .get(addresstypeindex)? - .cloned() - .map(Addressbytes::from), + // .map(|v| Addressbytes::from(v.clone())), + .map(|v| Addressbytes::from(v.into_inner())), Addresstype::P2WPKH => self .p2wpkhindex_to_p2wpkhaddressbytes .get(addresstypeindex)? - .cloned() - .map(Addressbytes::from), + // .map(|v| Addressbytes::from(v.clone())), + .map(|v| Addressbytes::from(v.into_inner())), Addresstype::P2WSH => self .p2wshindex_to_p2wshaddressbytes .get(addresstypeindex)? - .cloned() - .map(Addressbytes::from), + // .map(|v| Addressbytes::from(v.clone())), + .map(|v| Addressbytes::from(v.into_inner())), Addresstype::P2TR => self .p2trindex_to_p2traddressbytes .get(addresstypeindex)? - .cloned() - .map(Addressbytes::from), + // .map(|v| Addressbytes::from(v.clone())), + .map(|v| Addressbytes::from(v.into_inner())), _ => unreachable!(), }) } @@ -324,12 +324,6 @@ impl Vecs { .try_for_each(|vec| vec.flush(height)) } - pub fn reset_cache(&mut self) { - self.as_mut_slice().par_iter_mut().for_each(|vec| { - vec.reset_cache(); - }) - } - pub fn min_height(&self) -> color_eyre::Result> { Ok(self .as_slice() diff --git a/src/crates/bindex/src/structs/version.rs b/bindex/src/structs/version.rs similarity index 100% rename from src/crates/bindex/src/structs/version.rs rename to bindex/src/structs/version.rs diff --git a/src/crates/biter/CHANGELOG.md b/biter/CHANGELOG.md similarity index 100% rename from src/crates/biter/CHANGELOG.md rename to biter/CHANGELOG.md diff --git a/src/crates/biter/Cargo.lock b/biter/Cargo.lock similarity index 100% rename from src/crates/biter/Cargo.lock rename to biter/Cargo.lock diff --git a/src/crates/biter/Cargo.toml b/biter/Cargo.toml similarity index 100% rename from src/crates/biter/Cargo.toml rename to biter/Cargo.toml diff --git a/src/crates/biter/LICENSE.md b/biter/LICENSE.md similarity index 100% rename from src/crates/biter/LICENSE.md rename to biter/LICENSE.md diff --git a/src/crates/biter/README.md b/biter/README.md similarity index 100% rename from src/crates/biter/README.md rename to biter/README.md diff --git a/src/crates/biter/src/blk_index_to_blk_path.rs b/biter/src/blk_index_to_blk_path.rs similarity index 100% rename from src/crates/biter/src/blk_index_to_blk_path.rs rename to biter/src/blk_index_to_blk_path.rs diff --git a/src/crates/biter/src/blk_index_to_blk_recap.rs b/biter/src/blk_index_to_blk_recap.rs similarity index 100% rename from src/crates/biter/src/blk_index_to_blk_recap.rs rename to biter/src/blk_index_to_blk_recap.rs diff --git a/src/crates/biter/src/blk_metadata.rs b/biter/src/blk_metadata.rs similarity index 100% rename from src/crates/biter/src/blk_metadata.rs rename to biter/src/blk_metadata.rs diff --git a/src/crates/biter/src/blk_metadata_and_block.rs b/biter/src/blk_metadata_and_block.rs similarity index 100% rename from src/crates/biter/src/blk_metadata_and_block.rs rename to biter/src/blk_metadata_and_block.rs diff --git a/src/crates/biter/src/blk_recap.rs b/biter/src/blk_recap.rs similarity index 100% rename from src/crates/biter/src/blk_recap.rs rename to biter/src/blk_recap.rs diff --git a/src/crates/biter/src/lib.rs b/biter/src/lib.rs similarity index 95% rename from src/crates/biter/src/lib.rs rename to biter/src/lib.rs index d71d93027..c554537cc 100644 --- a/src/crates/biter/src/lib.rs +++ b/biter/src/lib.rs @@ -58,26 +58,24 @@ enum BlockState { /// /// use bitcoincore_rpc::{Auth, Client}; /// -/// fn main() { -/// let i = std::time::Instant::now(); +/// let i = std::time::Instant::now(); /// -/// let data_dir = Path::new("../../bitcoin"); -/// let url = "http://localhost:8332"; -/// let cookie = Path::new(data_dir).join(".cookie"); -/// let auth = Auth::CookieFile(cookie); -/// let rpc = Client::new(url, auth).unwrap(); +/// let data_dir = Path::new("../../bitcoin"); +/// let url = "http://localhost:8332"; +/// let cookie = Path::new(data_dir).join(".cookie"); +/// let auth = Auth::CookieFile(cookie); +/// let rpc = Client::new(url, auth).unwrap(); /// -/// let start = Some(850_000); -/// let end = None; +/// let start = Some(850_000); +/// let end = None; /// -/// biter::new(data_dir, start, end, rpc) -/// .iter() -/// .for_each(|(height, _block, hash)| { -/// println!("{height}: {hash}"); -/// }); +/// biter::new(data_dir, start, end, rpc) +/// .iter() +/// .for_each(|(height, _block, hash)| { +/// println!("{height}: {hash}"); +/// }); /// -/// dbg!(i.elapsed()); -/// } +/// dbg!(i.elapsed()); /// ``` /// pub fn new( @@ -285,7 +283,7 @@ pub fn new( .unwrap(); } - if end.map_or(false, |end| height == end) { + if end == Some(height) { return ControlFlow::Break(()); } diff --git a/src/crates/biter/src/main.rs b/biter/src/main.rs similarity index 100% rename from src/crates/biter/src/main.rs rename to biter/src/main.rs diff --git a/src/crates/biter/src/utils.rs b/biter/src/utils.rs similarity index 100% rename from src/crates/biter/src/utils.rs rename to biter/src/utils.rs diff --git a/src/crates/iterable/Cargo.lock b/iterable/Cargo.lock similarity index 100% rename from src/crates/iterable/Cargo.lock rename to iterable/Cargo.lock diff --git a/src/crates/iterable/Cargo.toml b/iterable/Cargo.toml similarity index 100% rename from src/crates/iterable/Cargo.toml rename to iterable/Cargo.toml diff --git a/src/crates/iterable/README.md b/iterable/README.md similarity index 100% rename from src/crates/iterable/README.md rename to iterable/README.md diff --git a/src/crates/iterable/src/lib.rs b/iterable/src/lib.rs similarity index 100% rename from src/crates/iterable/src/lib.rs rename to iterable/src/lib.rs diff --git a/src/crates/iterable/struct_iterable_derive/Cargo.toml b/iterable/struct_iterable_derive/Cargo.toml similarity index 100% rename from src/crates/iterable/struct_iterable_derive/Cargo.toml rename to iterable/struct_iterable_derive/Cargo.toml diff --git a/src/crates/iterable/struct_iterable_derive/README.md b/iterable/struct_iterable_derive/README.md similarity index 100% rename from src/crates/iterable/struct_iterable_derive/README.md rename to iterable/struct_iterable_derive/README.md diff --git a/src/crates/iterable/struct_iterable_derive/src/lib.rs b/iterable/struct_iterable_derive/src/lib.rs similarity index 100% rename from src/crates/iterable/struct_iterable_derive/src/lib.rs rename to iterable/struct_iterable_derive/src/lib.rs diff --git a/src/crates/iterable/struct_iterable_internal/Cargo.toml b/iterable/struct_iterable_internal/Cargo.toml similarity index 100% rename from src/crates/iterable/struct_iterable_internal/Cargo.toml rename to iterable/struct_iterable_internal/Cargo.toml diff --git a/src/crates/iterable/struct_iterable_internal/README.md b/iterable/struct_iterable_internal/README.md similarity index 100% rename from src/crates/iterable/struct_iterable_internal/README.md rename to iterable/struct_iterable_internal/README.md diff --git a/src/crates/iterable/struct_iterable_internal/src/lib.rs b/iterable/struct_iterable_internal/src/lib.rs similarity index 100% rename from src/crates/iterable/struct_iterable_internal/src/lib.rs rename to iterable/struct_iterable_internal/src/lib.rs diff --git a/src/crates/snkrj/Cargo.lock b/snkrj/Cargo.lock similarity index 100% rename from src/crates/snkrj/Cargo.lock rename to snkrj/Cargo.lock diff --git a/src/crates/snkrj/Cargo.toml b/snkrj/Cargo.toml similarity index 100% rename from src/crates/snkrj/Cargo.toml rename to snkrj/Cargo.toml diff --git a/src/crates/snkrj/LICENSE.md b/snkrj/LICENSE.md similarity index 100% rename from src/crates/snkrj/LICENSE.md rename to snkrj/LICENSE.md diff --git a/src/crates/snkrj/README.md b/snkrj/README.md similarity index 100% rename from src/crates/snkrj/README.md rename to snkrj/README.md diff --git a/src/crates/snkrj/src/lib.rs b/snkrj/src/lib.rs similarity index 100% rename from src/crates/snkrj/src/lib.rs rename to snkrj/src/lib.rs diff --git a/src/crates/snkrj/src/main.rs b/snkrj/src/main.rs similarity index 100% rename from src/crates/snkrj/src/main.rs rename to snkrj/src/main.rs diff --git a/src/crates/storable_vec/.gitignore b/storable_vec/.gitignore similarity index 100% rename from src/crates/storable_vec/.gitignore rename to storable_vec/.gitignore diff --git a/src/crates/storable_vec/Cargo.lock b/storable_vec/Cargo.lock similarity index 100% rename from src/crates/storable_vec/Cargo.lock rename to storable_vec/Cargo.lock diff --git a/src/crates/storable_vec/Cargo.toml b/storable_vec/Cargo.toml similarity index 100% rename from src/crates/storable_vec/Cargo.toml rename to storable_vec/Cargo.toml diff --git a/src/crates/storable_vec/LICENSE.md b/storable_vec/LICENSE.md similarity index 100% rename from src/crates/storable_vec/LICENSE.md rename to storable_vec/LICENSE.md diff --git a/src/crates/storable_vec/README.md b/storable_vec/README.md similarity index 100% rename from src/crates/storable_vec/README.md rename to storable_vec/README.md diff --git a/src/crates/storable_vec/src/lib.rs b/storable_vec/src/lib.rs similarity index 65% rename from src/crates/storable_vec/src/lib.rs rename to storable_vec/src/lib.rs index 0319afe26..3037b9080 100644 --- a/src/crates/storable_vec/src/lib.rs +++ b/storable_vec/src/lib.rs @@ -2,11 +2,11 @@ use std::{ cmp::Ordering, fmt::{self, Debug}, fs::{File, OpenOptions}, - io::{self, Write}, + io::{self, Read, Seek, SeekFrom, Write}, marker::PhantomData, mem, - ops::Range, - path::Path, + ops::{Deref, Range}, + path::{Path, PathBuf}, sync::OnceLock, }; @@ -25,6 +25,8 @@ use memmap2::{Mmap, MmapOptions}; /// #[derive(Debug)] pub struct StorableVec { + pathbuf: PathBuf, + // file_for_reads: File, file: File, cache: Vec>>, // Boxed to reduce the size of the lock (24 > 16) disk_len: usize, @@ -36,28 +38,69 @@ pub struct StorableVec { } /// In bytes -const MAX_PAGE_SIZE: usize = 4096; -const ONE_MB: usize = 1024 * 1024; -const MAX_CACHE_SIZE: usize = 50 * ONE_MB; +const MAX_PAGE_SIZE: usize = 4 * 4096; +const ONE_MB: usize = 1000 * 1024; +const MAX_CACHE_SIZE: usize = 100 * ONE_MB; + +#[derive(Debug, Clone)] +pub enum Value<'a, T> { + Ref(&'a T), + Owned(T), +} + +impl Value<'_, T> +where + T: Sized + Debug + Clone, +{ + pub fn into_inner(self) -> T { + match self { + Self::Ref(t) => t.to_owned(), + Self::Owned(t) => t, + } + } +} + +impl Deref for Value<'_, T> { + type Target = T; + fn deref(&self) -> &Self::Target { + match self { + Self::Ref(t) => t, + Self::Owned(t) => t, + } + } +} + +impl AsRef for Value<'_, T> +where + T: Sized + Debug + Clone, +{ + fn as_ref(&self) -> &T { + match self { + Self::Ref(t) => t, + Self::Owned(t) => t, + } + } +} impl StorableVec where I: Into, - T: Sized + Debug, + T: Sized + Debug + Clone, { - pub const SIZE: usize = size_of::(); - - pub const PER_PAGE: usize = MAX_PAGE_SIZE / Self::SIZE; + pub const SIZE_OF_T: usize = size_of::(); + pub const PER_PAGE: usize = MAX_PAGE_SIZE / Self::SIZE_OF_T; /// In bytes - pub const PAGE_SIZE: usize = Self::PER_PAGE * Self::SIZE; + pub const PAGE_SIZE: usize = Self::PER_PAGE * Self::SIZE_OF_T; pub const CACHE_LENGTH: usize = MAX_CACHE_SIZE / Self::PAGE_SIZE; pub fn import(path: &Path) -> Result { let file = Self::open_file(path)?; let mut this = Self { + pathbuf: path.to_owned(), disk_len: Self::byte_index_to_index(file.metadata()?.len() as usize), file, + // file_for_reads: Self::open_file(path)?, cache: vec![], pushed: vec![], // updated: BTreeMap::new(), @@ -66,15 +109,21 @@ where phantom: PhantomData, }; + this.cache.resize_with(Self::CACHE_LENGTH, Default::default); + this.cache.shrink_to_fit(); + this.reset_cache(); Ok(this) } - pub fn reset_cache(&mut self) { - let len = (self.disk_len as f64 / Self::PER_PAGE as f64).ceil() as usize; - self.cache.clear(); - self.cache.resize_with(len, Default::default); + fn reset_cache(&mut self) { + // let len = (self.disk_len as f64 / Self::PER_PAGE as f64).ceil() as usize; + // self.cache.clear(); + // self.cache.resize_with(len, Default::default); + self.cache.iter_mut().for_each(|lock| { + lock.take(); + }); } fn open_file(path: &Path) -> Result { @@ -87,24 +136,19 @@ where } #[inline] - fn index_to_mmap_index(index: usize) -> usize { - Self::index_to_byte_index(index) / Self::PAGE_SIZE - } - - #[inline] - fn index_to_range(index: usize) -> Range { + fn index_to_byte_range(index: usize) -> Range { let index = Self::index_to_byte_index(index) % Self::PAGE_SIZE; - index..(index + Self::SIZE) + index..(index + Self::SIZE_OF_T) } #[inline] fn index_to_byte_index(index: usize) -> usize { - index * Self::SIZE + index * Self::SIZE_OF_T } #[inline] fn byte_index_to_index(byte_index: usize) -> usize { - byte_index / Self::SIZE + byte_index / Self::SIZE_OF_T } fn index_to_pushed_index(&self, index: usize) -> Result> { @@ -122,14 +166,14 @@ where #[allow(unused)] #[inline] - pub fn get(&self, index: I) -> Result> { + pub fn get(&self, index: I) -> Result>> { self.get_(index.into()) } - pub fn get_(&self, index: usize) -> Result> { + pub fn get_(&self, index: usize) -> Result>> { match self.index_to_pushed_index(index) { Ok(index) => { if let Some(index) = index { - return Ok(self.pushed.get(index)); + return Ok(self.pushed.get(index).map(|v| Value::Ref(v))); } } Err(Error::IndexTooHigh) => return Ok(None), @@ -142,35 +186,56 @@ where // } // } - let mmap_index = Self::index_to_mmap_index(index); + let byte_index = Self::index_to_byte_index(index); + let page_index = index / Self::PER_PAGE; + let last_index = self.disk_len - 1; + let max_page_index = last_index / Self::PER_PAGE; + let min_page_index = (max_page_index + 1) + .checked_sub(Self::CACHE_LENGTH) + .unwrap_or_default(); - let mmap = &**self - .cache - .get(mmap_index) - .ok_or(Error::MmapsVecIsTooSmall)? - .get_or_init(|| { - Box::new(unsafe { - MmapOptions::new() - .len(MAX_PAGE_SIZE) - .offset((mmap_index * Self::PAGE_SIZE) as u64) - .map(&self.file) - .unwrap() - }) - }); + if page_index >= min_page_index { + let mmap = &**self + .cache + .get(page_index - min_page_index) + .ok_or(Error::MmapsVecIsTooSmall)? + .get_or_init(|| { + Box::new(unsafe { + MmapOptions::new() + .len(Self::PAGE_SIZE) + .offset((page_index * Self::PAGE_SIZE) as u64) + .map(&self.file) + .unwrap() + }) + }); - let range = Self::index_to_range(index); - let src = &mmap[range]; + let range = Self::index_to_byte_range(index); - Ok(Some(T::unsafe_try_from_slice(src)?)) + let slice = &mmap[range]; + + Ok(Some(Value::Ref(T::unsafe_try_from_slice(slice)?))) + } else { + // let mut file = &self.file_for_reads; + let mut file = Self::open_file(&self.pathbuf).unwrap(); + + file.seek(SeekFrom::Start(byte_index as u64)).unwrap(); + + let mut buf = vec![0; Self::SIZE_OF_T]; + file.read_exact(&mut buf).unwrap(); + + let value = T::unsafe_try_from_slice(&buf[..])?; + + Ok(Some(Value::Owned(value.to_owned()))) + } } #[allow(unused)] - pub fn first(&self) -> Result> { + pub fn first(&self) -> Result>> { self.get_(0) } #[allow(unused)] - pub fn last(&self) -> Result> { + pub fn last(&self) -> Result>> { let len = self.len(); if len == 0 { return Ok(None); @@ -261,6 +326,7 @@ where pub fn flush(&mut self) -> io::Result<()> { self.disk_len += self.pushed.len(); + self.reset_cache(); let mut bytes: Vec = vec![]; @@ -269,21 +335,28 @@ where .into_iter() .for_each(|v| bytes.extend_from_slice(v.unsafe_as_slice())); - self.file.write_all(&bytes) + // self.file.seek(SeekFrom::End(0))?; + self.file.write_all(&bytes)?; + // self.file_for_mmaps.write_all(&bytes)?; + + // self.file_for_mmaps.sync_all()?; + // self.file_for_reads.sync_all()?; + // self.file_for_reads = Self::open_file(&self.pathbuf)?; + + Ok(()) } } pub trait AnyStorableVec { fn len(&self) -> usize; fn is_empty(&self) -> bool; - fn reset_cache(&mut self); fn flush(&mut self) -> io::Result<()>; } impl AnyStorableVec for StorableVec where I: Into, - T: Sized + Debug, + T: Sized + Debug + Clone, { fn len(&self) -> usize { self.len() @@ -293,10 +366,6 @@ where self.is_empty() } - fn reset_cache(&mut self) { - self.reset_cache(); - } - fn flush(&mut self) -> io::Result<()> { self.flush() } diff --git a/src/crates/storable_vec/src/main.rs b/storable_vec/src/main.rs similarity index 100% rename from src/crates/storable_vec/src/main.rs rename to storable_vec/src/main.rs