mirror of
https://github.com/ShadowJonathan/conduit_toolbox.git
synced 2025-06-07 18:07:08 +03:00
remove sled, upgrade rocksdb and rusqlite to conduit's version
This commit is contained in:
parent
7cc4616fbf
commit
6ee110e5ba
10 changed files with 127 additions and 363 deletions
286
Cargo.lock
generated
286
Cargo.lock
generated
|
@ -4,13 +4,14 @@ version = 3
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ahash"
|
name = "ahash"
|
||||||
version = "0.7.8"
|
version = "0.8.11"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
|
checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"getrandom",
|
"cfg-if",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"version_check",
|
"version_check",
|
||||||
|
"zerocopy",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -22,6 +23,12 @@ dependencies = [
|
||||||
"memchr",
|
"memchr",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "allocator-api2"
|
||||||
|
version = "0.2.18"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ansi_term"
|
name = "ansi_term"
|
||||||
version = "0.12.1"
|
version = "0.12.1"
|
||||||
|
@ -65,21 +72,22 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bindgen"
|
name = "bindgen"
|
||||||
version = "0.59.2"
|
version = "0.69.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2bd2a9a458e8f4304c52c43ebb0cfbd520289f8379a52e329a38afda99bf8eb8"
|
checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags 2.5.0",
|
||||||
"cexpr",
|
"cexpr",
|
||||||
"clang-sys",
|
"clang-sys",
|
||||||
|
"itertools",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"lazycell",
|
"lazycell",
|
||||||
"peeking_take_while",
|
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"regex",
|
"regex",
|
||||||
"rustc-hash",
|
"rustc-hash",
|
||||||
"shlex",
|
"shlex",
|
||||||
|
"syn",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -88,6 +96,12 @@ version = "1.3.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bitflags"
|
||||||
|
version = "2.5.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bytemuck"
|
name = "bytemuck"
|
||||||
version = "1.14.3"
|
version = "1.14.3"
|
||||||
|
@ -100,6 +114,17 @@ version = "1.5.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
|
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bzip2-sys"
|
||||||
|
version = "0.1.11+1.0.8"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc"
|
||||||
|
dependencies = [
|
||||||
|
"cc",
|
||||||
|
"libc",
|
||||||
|
"pkg-config",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cc"
|
name = "cc"
|
||||||
version = "1.0.88"
|
version = "1.0.88"
|
||||||
|
@ -143,7 +168,7 @@ checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ansi_term",
|
"ansi_term",
|
||||||
"atty",
|
"atty",
|
||||||
"bitflags",
|
"bitflags 1.3.2",
|
||||||
"strsim",
|
"strsim",
|
||||||
"textwrap",
|
"textwrap",
|
||||||
"unicode-width",
|
"unicode-width",
|
||||||
|
@ -158,9 +183,8 @@ dependencies = [
|
||||||
"heed",
|
"heed",
|
||||||
"itertools",
|
"itertools",
|
||||||
"persy",
|
"persy",
|
||||||
"rocksdb",
|
|
||||||
"rusqlite",
|
"rusqlite",
|
||||||
"sled",
|
"rust-rocksdb",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -174,15 +198,6 @@ dependencies = [
|
||||||
"thiserror",
|
"thiserror",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "conduit_sled_to_sqlite"
|
|
||||||
version = "0.1.0"
|
|
||||||
dependencies = [
|
|
||||||
"anyhow",
|
|
||||||
"clap",
|
|
||||||
"conduit_iface",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "crc"
|
name = "crc"
|
||||||
version = "3.0.1"
|
version = "3.0.1"
|
||||||
|
@ -198,24 +213,6 @@ version = "2.4.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
|
checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "crc32fast"
|
|
||||||
version = "1.4.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
|
|
||||||
dependencies = [
|
|
||||||
"cfg-if",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "crossbeam-epoch"
|
|
||||||
version = "0.9.18"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
|
|
||||||
dependencies = [
|
|
||||||
"crossbeam-utils",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "crossbeam-queue"
|
name = "crossbeam-queue"
|
||||||
version = "0.3.11"
|
version = "0.3.11"
|
||||||
|
@ -245,9 +242,9 @@ checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "fallible-iterator"
|
name = "fallible-iterator"
|
||||||
version = "0.2.0"
|
version = "0.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"
|
checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "fallible-streaming-iterator"
|
name = "fallible-streaming-iterator"
|
||||||
|
@ -274,15 +271,6 @@ dependencies = [
|
||||||
"winapi",
|
"winapi",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "fxhash"
|
|
||||||
version = "0.2.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
|
|
||||||
dependencies = [
|
|
||||||
"byteorder",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "getrandom"
|
name = "getrandom"
|
||||||
version = "0.2.12"
|
version = "0.2.12"
|
||||||
|
@ -302,18 +290,19 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hashbrown"
|
name = "hashbrown"
|
||||||
version = "0.11.2"
|
version = "0.14.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
|
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ahash",
|
"ahash",
|
||||||
|
"allocator-api2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hashlink"
|
name = "hashlink"
|
||||||
version = "0.7.0"
|
version = "0.9.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7249a3129cbc1ffccd74857f81464a323a152173cdb134e0fd81bc803b29facf"
|
checksum = "692eaaf7f7607518dd3cef090f1474b61edc5301d8012f09579920df68b725ee"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"hashbrown",
|
"hashbrown",
|
||||||
]
|
]
|
||||||
|
@ -373,15 +362,6 @@ dependencies = [
|
||||||
"unicode-normalization",
|
"unicode-normalization",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "instant"
|
|
||||||
version = "0.1.12"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
|
|
||||||
dependencies = [
|
|
||||||
"cfg-if",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "itertools"
|
name = "itertools"
|
||||||
version = "0.10.5"
|
version = "0.10.5"
|
||||||
|
@ -426,22 +406,21 @@ dependencies = [
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "librocksdb-sys"
|
name = "libsqlite3-sys"
|
||||||
version = "6.20.3"
|
version = "0.28.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c309a9d2470844aceb9a4a098cf5286154d20596868b75a6b36357d2bb9ca25d"
|
checksum = "0c10584274047cb335c23d3e61bcef8e323adae7c5c8c760540f73610177fc3f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bindgen",
|
|
||||||
"cc",
|
"cc",
|
||||||
"glob",
|
"pkg-config",
|
||||||
"libc",
|
"vcpkg",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libsqlite3-sys"
|
name = "libz-sys"
|
||||||
version = "0.22.2"
|
version = "1.1.16"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "290b64917f8b0cb885d9de0f9959fe1f775d7fa12f1da2db9001c1c8ab60f89d"
|
checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cc",
|
"cc",
|
||||||
"pkg-config",
|
"pkg-config",
|
||||||
|
@ -466,21 +445,15 @@ dependencies = [
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lock_api"
|
name = "lz4-sys"
|
||||||
version = "0.4.11"
|
version = "1.9.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
|
checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"autocfg",
|
"cc",
|
||||||
"scopeguard",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "log"
|
|
||||||
version = "0.4.20"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "memchr"
|
name = "memchr"
|
||||||
version = "2.7.1"
|
version = "2.7.1"
|
||||||
|
@ -528,37 +501,6 @@ dependencies = [
|
||||||
"winapi",
|
"winapi",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "parking_lot"
|
|
||||||
version = "0.11.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
|
|
||||||
dependencies = [
|
|
||||||
"instant",
|
|
||||||
"lock_api",
|
|
||||||
"parking_lot_core",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "parking_lot_core"
|
|
||||||
version = "0.8.6"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
|
|
||||||
dependencies = [
|
|
||||||
"cfg-if",
|
|
||||||
"instant",
|
|
||||||
"libc",
|
|
||||||
"redox_syscall",
|
|
||||||
"smallvec",
|
|
||||||
"winapi",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "peeking_take_while"
|
|
||||||
version = "0.1.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "percent-encoding"
|
name = "percent-encoding"
|
||||||
version = "2.3.1"
|
version = "2.3.1"
|
||||||
|
@ -641,15 +583,6 @@ dependencies = [
|
||||||
"getrandom",
|
"getrandom",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "redox_syscall"
|
|
||||||
version = "0.2.16"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
|
|
||||||
dependencies = [
|
|
||||||
"bitflags",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "regex"
|
name = "regex"
|
||||||
version = "1.10.3"
|
version = "1.10.3"
|
||||||
|
@ -679,31 +612,46 @@ version = "0.8.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
|
checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "rocksdb"
|
|
||||||
version = "0.17.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "7a62eca5cacf2c8261128631bed9f045598d40bfbe4b29f5163f0f802f8f44a7"
|
|
||||||
dependencies = [
|
|
||||||
"libc",
|
|
||||||
"librocksdb-sys",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rusqlite"
|
name = "rusqlite"
|
||||||
version = "0.25.4"
|
version = "0.31.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5c4b1eaf239b47034fb450ee9cdedd7d0226571689d8823030c4b6c2cb407152"
|
checksum = "b838eba278d213a8beaf485bd313fd580ca4505a00d5871caeb1457c55322cae"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags 2.5.0",
|
||||||
"fallible-iterator",
|
"fallible-iterator",
|
||||||
"fallible-streaming-iterator",
|
"fallible-streaming-iterator",
|
||||||
"hashlink",
|
"hashlink",
|
||||||
"libsqlite3-sys",
|
"libsqlite3-sys",
|
||||||
"memchr",
|
|
||||||
"smallvec",
|
"smallvec",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rust-librocksdb-sys"
|
||||||
|
version = "0.21.0+9.1.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "75cb7b9cd5ce3b3ce0757ceab2240f7471826780b8700845c0cfd418cb7e398d"
|
||||||
|
dependencies = [
|
||||||
|
"bindgen",
|
||||||
|
"bzip2-sys",
|
||||||
|
"cc",
|
||||||
|
"glob",
|
||||||
|
"libc",
|
||||||
|
"libz-sys",
|
||||||
|
"lz4-sys",
|
||||||
|
"zstd-sys",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rust-rocksdb"
|
||||||
|
version = "0.25.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2bcfb31b5bf2e3274686ebfdf9a946e9a327a3bc54adc7e5cda9f4fdcc4b55f1"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
"rust-librocksdb-sys",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustc-hash"
|
name = "rustc-hash"
|
||||||
version = "1.1.0"
|
version = "1.1.0"
|
||||||
|
@ -716,12 +664,6 @@ version = "1.0.17"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
|
checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "scopeguard"
|
|
||||||
version = "1.2.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serde"
|
name = "serde"
|
||||||
version = "1.0.197"
|
version = "1.0.197"
|
||||||
|
@ -759,23 +701,6 @@ version = "1.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
|
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "sled"
|
|
||||||
version = "0.34.7"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "7f96b4737c2ce5987354855aed3797279def4ebf734436c6aa4552cf8e169935"
|
|
||||||
dependencies = [
|
|
||||||
"crc32fast",
|
|
||||||
"crossbeam-epoch",
|
|
||||||
"crossbeam-utils",
|
|
||||||
"fs2",
|
|
||||||
"fxhash",
|
|
||||||
"libc",
|
|
||||||
"log",
|
|
||||||
"parking_lot",
|
|
||||||
"zstd",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "smallvec"
|
name = "smallvec"
|
||||||
version = "1.13.1"
|
version = "1.13.1"
|
||||||
|
@ -1008,6 +933,26 @@ version = "0.48.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
|
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "zerocopy"
|
||||||
|
version = "0.7.32"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
|
||||||
|
dependencies = [
|
||||||
|
"zerocopy-derive",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "zerocopy-derive"
|
||||||
|
version = "0.7.32"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zigzag"
|
name = "zigzag"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
@ -1017,31 +962,12 @@ dependencies = [
|
||||||
"num-traits",
|
"num-traits",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "zstd"
|
|
||||||
version = "0.9.2+zstd.1.5.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "2390ea1bf6c038c39674f22d95f0564725fc06034a47129179810b2fc58caa54"
|
|
||||||
dependencies = [
|
|
||||||
"zstd-safe",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "zstd-safe"
|
|
||||||
version = "4.1.3+zstd.1.5.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "e99d81b99fb3c2c2c794e3fe56c305c63d5173a16a46b5850b07c935ffc7db79"
|
|
||||||
dependencies = [
|
|
||||||
"libc",
|
|
||||||
"zstd-sys",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zstd-sys"
|
name = "zstd-sys"
|
||||||
version = "1.6.2+zstd.1.5.1"
|
version = "2.0.10+zstd.1.5.6"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2daf2f248d9ea44454bfcb2516534e8b8ad2fc91bf818a1885495fc42bc8ac9f"
|
checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cc",
|
"cc",
|
||||||
"libc",
|
"pkg-config",
|
||||||
]
|
]
|
||||||
|
|
27
README.md
27
README.md
|
@ -8,27 +8,11 @@ This repository provides binaries to wrangle your conduit homeserver with.
|
||||||
|
|
||||||
### `conduit_sled_to_sqlite`
|
### `conduit_sled_to_sqlite`
|
||||||
|
|
||||||
A one-shot migration tool to convert your sled database to a sqlite one;
|
**This tool is no longer available on the main branch**, go to `with-sled` to download from there.
|
||||||
|
|
||||||
Instructions: (read the notes below first)
|
### `conduit_migrate`
|
||||||
1. execute `conduit_sled_to_sqlite <database_directory>`
|
|
||||||
- `conduit_sled_to_sqlite /var/lib/matrix-conduit/conduit_db`
|
|
||||||
2. the console will be spammed with a bunch of numbers, this is for diagnostic purposes, when the command returns, your database has been converted.
|
|
||||||
|
|
||||||
Some notes:
|
This tool provides generic migration between `heed`, `sqlite`, `persy`, and `rocksdb` conduit databases.
|
||||||
- The conversion process can take a second depending on the speed of the disk of your server, on raspberry pis it could take a while.
|
|
||||||
- **Have your server turned off** throughout the conversion process, be sure it is updated to a version which uses SQLite as the main database, and only then turn it back on
|
|
||||||
- If you have the server be on during the conversion process, some data might be missing from the new database
|
|
||||||
- If you turn the server back on with an older version (which still uses sled), it'll create a brand new sled database in the database directory, which might be confusing.
|
|
||||||
- The above method places the new database in the same directory as the old one, this'll effectively duplicate your database, if you're sure your server is up-to-date and works with the new database, you can remove the old sled database files under that directory (be sure you have a backup first!);
|
|
||||||
- `blobs/`
|
|
||||||
- `db`
|
|
||||||
- `conf`
|
|
||||||
- The new database can be anywhere from 2 to 4 times bigger than the old database, if you want to know how much your current database size is, run the following command;
|
|
||||||
- `du --apparent-size --max-depth=0 -h <database_directory>`
|
|
||||||
- And if you want to know how much room you have on your disk, you can run this;
|
|
||||||
- `df -h <database_directory>/` (with that trailing slash)
|
|
||||||
- Make sure you have this disk-space *extra* on your machine, else the conversion process will fill it up.
|
|
||||||
|
|
||||||
## Installing
|
## Installing
|
||||||
|
|
||||||
|
@ -38,9 +22,6 @@ For the best experience, compile this toolbox locally on your server;
|
||||||
2. Be sure that the rust executables are on your `$PATH`
|
2. Be sure that the rust executables are on your `$PATH`
|
||||||
3. You may want to have a compiler and build tools installed on your system, or else cargo will complain about not being able to "link" or "compile" with `cc`.
|
3. You may want to have a compiler and build tools installed on your system, or else cargo will complain about not being able to "link" or "compile" with `cc`.
|
||||||
- on debian/ubuntu-based systems you can install this with `sudo apt install build-essential`
|
- on debian/ubuntu-based systems you can install this with `sudo apt install build-essential`
|
||||||
5. `cargo install --locked --git https://github.com/shadowjonathan/conduit_toolbox` (Plus an extra argument, see below)
|
4. `cargo install --locked --git https://github.com/shadowjonathan/conduit_toolbox conduit_migrate`
|
||||||
- Depending on what you're trying to do, you'll have to add one more argument here
|
|
||||||
- Are you trying to install the Sled-to-Sqlite migrator? Add `conduit_sled_to_sqlite`
|
|
||||||
- Are you trying to install the generic migrator? Add `conduit_migrate`
|
|
||||||
|
|
||||||
(updating only requires running that last line again)
|
(updating only requires running that last line again)
|
||||||
|
|
|
@ -10,12 +10,20 @@ itertools = "0.10.1"
|
||||||
thiserror = "1.0.26"
|
thiserror = "1.0.26"
|
||||||
anyhow = "1.0.42"
|
anyhow = "1.0.42"
|
||||||
|
|
||||||
sled = { version = "0.34.6", features = ["compression", "no_metrics"], optional = true }
|
rusqlite = { version = "0.31", features = ["bundled"], optional = true }
|
||||||
rusqlite = { version = "0.25.3", features = ["bundled"], optional = true }
|
|
||||||
heed = { git = "https://github.com/timokoesters/heed.git", rev = "f6f825da7fb2c758867e05ad973ef800a6fe1d5d", optional = true }
|
heed = { git = "https://github.com/timokoesters/heed.git", rev = "f6f825da7fb2c758867e05ad973ef800a6fe1d5d", optional = true }
|
||||||
rocksdb = { version = "0.17.0", features = ["multi-threaded-cf", "zstd"], optional = true }
|
|
||||||
persy = { version = "1.2", optional = true }
|
persy = { version = "1.2", optional = true }
|
||||||
|
|
||||||
|
[dependencies.rocksdb]
|
||||||
|
package = "rust-rocksdb"
|
||||||
|
version = "0.25"
|
||||||
|
optional = true
|
||||||
|
features = [
|
||||||
|
"multi-threaded-cf",
|
||||||
|
"zstd",
|
||||||
|
"lz4",
|
||||||
|
]
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = []
|
default = []
|
||||||
|
|
||||||
|
|
|
@ -4,8 +4,6 @@ pub mod heed;
|
||||||
pub mod persy;
|
pub mod persy;
|
||||||
#[cfg(feature = "rocksdb")]
|
#[cfg(feature = "rocksdb")]
|
||||||
pub mod rocksdb;
|
pub mod rocksdb;
|
||||||
#[cfg(feature = "sled")]
|
|
||||||
pub mod sled;
|
|
||||||
#[cfg(feature = "sqlite")]
|
#[cfg(feature = "sqlite")]
|
||||||
pub mod sqlite;
|
pub mod sqlite;
|
||||||
|
|
||||||
|
|
|
@ -131,7 +131,10 @@ impl super::SegmentIter for RocksDBCFIter<'_> {
|
||||||
.db
|
.db
|
||||||
.rocks
|
.rocks
|
||||||
.iterator_cf(&self.0.cf(), rocksdb::IteratorMode::Start)
|
.iterator_cf(&self.0.cf(), rocksdb::IteratorMode::Start)
|
||||||
.map(|(k, v)| (Vec::from(k), Vec::from(v))),
|
.map(|r| {
|
||||||
|
let (k, v) = r.expect("we expect rocksdb to give us good rows only");
|
||||||
|
(Vec::from(k), Vec::from(v))
|
||||||
|
}),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,73 +0,0 @@
|
||||||
use super::{Database, KVIter, Segment, SegmentIter};
|
|
||||||
use itertools::Itertools;
|
|
||||||
use sled::{Batch, Config, Db, Result, Tree};
|
|
||||||
use std::path::Path;
|
|
||||||
|
|
||||||
pub fn new_db<P: AsRef<Path>>(path: P) -> Result<Db> {
|
|
||||||
Config::default().path(path).use_compression(true).open()
|
|
||||||
}
|
|
||||||
|
|
||||||
pub struct SledDB(Db);
|
|
||||||
|
|
||||||
impl SledDB {
|
|
||||||
pub fn new(db: Db) -> Self {
|
|
||||||
Self(db)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const SLED_DEFAULT: &[u8] = "__sled__default".as_bytes();
|
|
||||||
|
|
||||||
impl Database for SledDB {
|
|
||||||
fn names<'a>(&'a self) -> Vec<Vec<u8>> {
|
|
||||||
self.0
|
|
||||||
.tree_names()
|
|
||||||
.into_iter()
|
|
||||||
.filter(|v| v != SLED_DEFAULT)
|
|
||||||
.map(|v| v.to_vec())
|
|
||||||
.collect_vec()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn segment(&mut self, name: Vec<u8>) -> Option<Box<dyn Segment>> {
|
|
||||||
self.0
|
|
||||||
.open_tree(name)
|
|
||||||
.ok()
|
|
||||||
.map(|t| -> Box<dyn Segment> { Box::new(t) })
|
|
||||||
}
|
|
||||||
|
|
||||||
fn flush(&mut self) {
|
|
||||||
self.0.flush().unwrap();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Segment for Tree {
|
|
||||||
fn batch_insert(
|
|
||||||
&mut self,
|
|
||||||
batch: Box<dyn Iterator<Item = (Vec<u8>, Vec<u8>)> + '_>,
|
|
||||||
) -> anyhow::Result<()> {
|
|
||||||
let mut sled_batch = Batch::default();
|
|
||||||
|
|
||||||
for (k, v) in batch {
|
|
||||||
sled_batch.insert(k, v)
|
|
||||||
}
|
|
||||||
|
|
||||||
self.apply_batch(sled_batch).map_err(Into::into)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn get_iter<'a>(&'a mut self) -> Box<dyn super::SegmentIter + 'a> {
|
|
||||||
Box::new(SledTreeIter(self))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
struct SledTreeIter<'a>(&'a mut Tree);
|
|
||||||
|
|
||||||
impl SegmentIter for SledTreeIter<'_> {
|
|
||||||
fn iter<'a>(&'a mut self) -> KVIter<'a> {
|
|
||||||
Box::new(self.0.iter().filter_map(|r| {
|
|
||||||
if let Ok(t) = r {
|
|
||||||
Some((t.0.to_vec(), t.1.to_vec()))
|
|
||||||
} else {
|
|
||||||
None
|
|
||||||
}
|
|
||||||
}))
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -12,9 +12,8 @@ conduit_iface = { path = "../iface/", default-features = false }
|
||||||
thiserror = "1.0.26"
|
thiserror = "1.0.26"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["sled", "sqlite", "rocksdb"]
|
default = ["sqlite", "rocksdb"]
|
||||||
|
|
||||||
sled = ["conduit_iface/sled"]
|
|
||||||
persy = ["conduit_iface/persy"]
|
persy = ["conduit_iface/persy"]
|
||||||
heed = ["conduit_iface/heed"]
|
heed = ["conduit_iface/heed"]
|
||||||
sqlite = ["conduit_iface/sqlite"]
|
sqlite = ["conduit_iface/sqlite"]
|
||||||
|
|
|
@ -6,8 +6,6 @@ use std::{
|
||||||
};
|
};
|
||||||
|
|
||||||
enum Database {
|
enum Database {
|
||||||
#[cfg(feature = "sled")]
|
|
||||||
Sled(db::sled::SledDB),
|
|
||||||
#[cfg(feature = "heed")]
|
#[cfg(feature = "heed")]
|
||||||
Heed(db::heed::HeedDB),
|
Heed(db::heed::HeedDB),
|
||||||
#[cfg(feature = "sqlite")]
|
#[cfg(feature = "sqlite")]
|
||||||
|
@ -21,8 +19,6 @@ enum Database {
|
||||||
impl Database {
|
impl Database {
|
||||||
fn new(name: &str, path: PathBuf, config: Config) -> anyhow::Result<Self> {
|
fn new(name: &str, path: PathBuf, config: Config) -> anyhow::Result<Self> {
|
||||||
Ok(match name {
|
Ok(match name {
|
||||||
#[cfg(feature = "sled")]
|
|
||||||
"sled" => Self::Sled(db::sled::SledDB::new(db::sled::new_db(path)?)),
|
|
||||||
#[cfg(feature = "heed")]
|
#[cfg(feature = "heed")]
|
||||||
"heed" => Self::Heed(db::heed::HeedDB::new(db::heed::new_db(path)?)),
|
"heed" => Self::Heed(db::heed::HeedDB::new(db::heed::new_db(path)?)),
|
||||||
#[cfg(feature = "sqlite")]
|
#[cfg(feature = "sqlite")]
|
||||||
|
@ -44,8 +40,6 @@ impl Deref for Database {
|
||||||
|
|
||||||
fn deref(&self) -> &Self::Target {
|
fn deref(&self) -> &Self::Target {
|
||||||
match self {
|
match self {
|
||||||
#[cfg(feature = "sled")]
|
|
||||||
Database::Sled(db) => db,
|
|
||||||
#[cfg(feature = "heed")]
|
#[cfg(feature = "heed")]
|
||||||
Database::Heed(db) => db,
|
Database::Heed(db) => db,
|
||||||
#[cfg(feature = "sqlite")]
|
#[cfg(feature = "sqlite")]
|
||||||
|
@ -61,8 +55,6 @@ impl Deref for Database {
|
||||||
impl DerefMut for Database {
|
impl DerefMut for Database {
|
||||||
fn deref_mut(&mut self) -> &mut Self::Target {
|
fn deref_mut(&mut self) -> &mut Self::Target {
|
||||||
match self {
|
match self {
|
||||||
#[cfg(feature = "sled")]
|
|
||||||
Database::Sled(db) => db,
|
|
||||||
#[cfg(feature = "heed")]
|
#[cfg(feature = "heed")]
|
||||||
Database::Heed(db) => db,
|
Database::Heed(db) => db,
|
||||||
#[cfg(feature = "sqlite")]
|
#[cfg(feature = "sqlite")]
|
||||||
|
@ -76,8 +68,6 @@ impl DerefMut for Database {
|
||||||
}
|
}
|
||||||
|
|
||||||
const DATABASES: &[&str] = &[
|
const DATABASES: &[&str] = &[
|
||||||
#[cfg(feature = "sled")]
|
|
||||||
"sled",
|
|
||||||
#[cfg(feature = "heed")]
|
#[cfg(feature = "heed")]
|
||||||
"heed",
|
"heed",
|
||||||
#[cfg(feature = "sqlite")]
|
#[cfg(feature = "sqlite")]
|
||||||
|
@ -89,7 +79,7 @@ const DATABASES: &[&str] = &[
|
||||||
];
|
];
|
||||||
|
|
||||||
fn main() -> anyhow::Result<()> {
|
fn main() -> anyhow::Result<()> {
|
||||||
let matches = App::new("Conduit Sled to Sqlite Migrator")
|
let matches = App::new("Conduit Generic Migrator")
|
||||||
.arg(
|
.arg(
|
||||||
Arg::with_name("from_dir")
|
Arg::with_name("from_dir")
|
||||||
.short("s")
|
.short("s")
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
[package]
|
|
||||||
name = "conduit_sled_to_sqlite"
|
|
||||||
version = "0.1.0"
|
|
||||||
edition = "2018"
|
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
clap = "2.33.3"
|
|
||||||
anyhow = "1.0.41"
|
|
||||||
conduit_iface = { path = "../iface/", features=["sled", "sqlite"] }
|
|
|
@ -1,57 +0,0 @@
|
||||||
use std::path::Path;
|
|
||||||
|
|
||||||
use clap::{App, Arg};
|
|
||||||
|
|
||||||
use conduit_iface::db::{copy_database, sled, sqlite, Config};
|
|
||||||
|
|
||||||
fn main() -> anyhow::Result<()> {
|
|
||||||
let matches = App::new("Conduit Sled to Sqlite Migrator")
|
|
||||||
.arg(
|
|
||||||
Arg::with_name("DIR")
|
|
||||||
.long_help("Sets the directory to grab the database from\nWill default to \".\"")
|
|
||||||
.index(1),
|
|
||||||
)
|
|
||||||
.arg(
|
|
||||||
Arg::with_name("NEW_DIR")
|
|
||||||
.long_help("Sets the destination directory\nWill default to DIR")
|
|
||||||
.index(2),
|
|
||||||
)
|
|
||||||
.get_matches();
|
|
||||||
|
|
||||||
let source_dir = matches.value_of("DIR").unwrap_or(".");
|
|
||||||
|
|
||||||
let dest_dir = matches.value_of("NEW_DIR");
|
|
||||||
|
|
||||||
let source_dir = Path::new(source_dir).canonicalize()?;
|
|
||||||
|
|
||||||
if !source_dir.is_dir() {
|
|
||||||
return Err(anyhow::anyhow!("source path must be directory"));
|
|
||||||
}
|
|
||||||
|
|
||||||
let dest_dir = match dest_dir {
|
|
||||||
None => Ok(source_dir.clone()),
|
|
||||||
Some(dir) => {
|
|
||||||
let p = Path::new(dir).canonicalize()?;
|
|
||||||
if !p.is_dir() {
|
|
||||||
Err(anyhow::anyhow!("destination path must be directory"))
|
|
||||||
} else {
|
|
||||||
Ok(p)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}?;
|
|
||||||
|
|
||||||
dbg!(&source_dir, &dest_dir);
|
|
||||||
|
|
||||||
let mut sled = sled::SledDB::new(sled::new_db(source_dir)?);
|
|
||||||
|
|
||||||
let mut sqlite = sqlite::SqliteDB::new(
|
|
||||||
sqlite::new_conn(dest_dir)?,
|
|
||||||
Config {
|
|
||||||
ignore_broken_rows: false,
|
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
copy_database(&mut sled, &mut sqlite, 1000)?;
|
|
||||||
|
|
||||||
Ok(())
|
|
||||||
}
|
|
Loading…
Add table
Add a link
Reference in a new issue