From 5c7f63388de621380a4c489d15b05f0e5a381c8a Mon Sep 17 00:00:00 2001 From: BubbleCal Date: Fri, 30 May 2025 06:19:24 +0800 Subject: [PATCH] feat!: upgrade lance to v0.28.0 (#2404) this introduces some breaking changes in terms of rust API of creating FTS index, and the default index params changed Signed-off-by: BubbleCal ## Summary by CodeRabbit - **New Features** - Updated default settings for full-text search (FTS) index creation: stemming, stop word removal, and ASCII folding are now enabled by default, while token position storage is disabled by default. - **Refactor** - Simplified and streamlined the configuration and handling of FTS index parameters for improved maintainability and consistency across interfaces. - Enhanced serialization and request construction for FTS index parameters to reduce manual handling and improve code clarity. - Improved test coverage by explicitly enabling positional indexing in FTS tests to support phrase queries. - **Chores** - Upgraded all internal dependencies related to FTS indexing to the latest version for enhanced compatibility and performance. - Updated package versions for Node.js, Python, and Rust components to the latest beta releases. - Improved CI workflows by adding Rust toolchain setup with formatting and linting tools. --------- Signed-off-by: BubbleCal Co-authored-by: Will Jones --- .github/workflows/java.yml | 7 +- .github/workflows/nodejs.yml | 3 + .github/workflows/run_tests/action.yml | 4 +- Cargo.lock | 750 ++++++++++++------------ Cargo.toml | 16 +- nodejs/Cargo.toml | 3 +- nodejs/__test__/table.test.ts | 8 +- nodejs/package.json | 2 +- nodejs/src/index.rs | 16 +- python/Cargo.toml | 2 +- python/python/lancedb/index.py | 16 +- python/python/lancedb/remote/table.py | 8 +- python/python/lancedb/table.py | 26 +- python/python/tests/docs/test_search.py | 12 + python/python/tests/test_fts.py | 6 +- python/src/index.rs | 10 +- rust/lancedb/Cargo.toml | 2 +- rust/lancedb/src/index/scalar.rs | 32 +- rust/lancedb/src/io/object_store.rs | 12 +- rust/lancedb/src/remote/table.rs | 22 +- rust/lancedb/src/table.rs | 6 +- 21 files changed, 484 insertions(+), 479 deletions(-) diff --git a/.github/workflows/java.yml b/.github/workflows/java.yml index de3eca5f..29091097 100644 --- a/.github/workflows/java.yml +++ b/.github/workflows/java.yml @@ -35,6 +35,9 @@ jobs: - uses: Swatinem/rust-cache@v2 with: workspaces: java/core/lancedb-jni + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + components: rustfmt - name: Run cargo fmt run: cargo fmt --check working-directory: ./java/core/lancedb-jni @@ -68,6 +71,9 @@ jobs: - uses: Swatinem/rust-cache@v2 with: workspaces: java/core/lancedb-jni + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + components: rustfmt - name: Run cargo fmt run: cargo fmt --check working-directory: ./java/core/lancedb-jni @@ -110,4 +116,3 @@ jobs: -Djdk.reflect.useDirectMethodHandle=false \ -Dio.netty.tryReflectionSetAccessible=true" JAVA_HOME=$JAVA_17 mvn clean test - diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index bb94e763..64067d7a 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -47,6 +47,9 @@ jobs: run: | sudo apt update sudo apt install -y protobuf-compiler libssl-dev + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + components: rustfmt, clippy - name: Lint run: | cargo fmt --all -- --check diff --git a/.github/workflows/run_tests/action.yml b/.github/workflows/run_tests/action.yml index 44623cce..ac7bf4f3 100644 --- a/.github/workflows/run_tests/action.yml +++ b/.github/workflows/run_tests/action.yml @@ -24,8 +24,8 @@ runs: - name: pytest (with integration) shell: bash if: ${{ inputs.integration == 'true' }} - run: pytest -m "not slow" -x -v --durations=30 python/python/tests + run: pytest -m "not slow" -vv --durations=30 python/python/tests - name: pytest (no integration tests) shell: bash if: ${{ inputs.integration != 'true' }} - run: pytest -m "not slow and not s3_test" -x -v --durations=30 python/python/tests + run: pytest -m "not slow and not s3_test" -vv --durations=30 python/python/tests diff --git a/Cargo.lock b/Cargo.lock index d5def81d..5531d462 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,16 +19,16 @@ checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "ahash" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", "const-random", - "getrandom 0.2.16", + "getrandom 0.3.3", "once_cell", "version_check", - "zerocopy 0.7.35", + "zerocopy", ] [[package]] @@ -117,12 +117,12 @@ dependencies = [ [[package]] name = "anstyle-wincon" -version = "3.0.7" +version = "3.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" +checksum = "6680de5231bd6ee4c6191b8a1325daa282b415391ec9d3a37bd34f2060dc73fa" dependencies = [ "anstyle", - "once_cell", + "once_cell_polyfill", "windows-sys 0.59.0", ] @@ -149,9 +149,9 @@ checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" [[package]] name = "argminmax" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52424b59d69d69d5056d508b260553afd91c57e21849579cd1f50ee8b8b88eaa" +checksum = "70f13d10a41ac8d2ec79ee34178d61e6f47a29c2edfe7ef1721c7383b0359e65" dependencies = [ "num-traits", ] @@ -354,7 +354,7 @@ version = "54.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cfaf5e440be44db5413b75b72c2a87c1f8f0627117d110264048f2969b99e9" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] [[package]] @@ -388,6 +388,18 @@ dependencies = [ "regex-syntax 0.8.5", ] +[[package]] +name = "async-channel" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +dependencies = [ + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + [[package]] name = "async-compression" version = "0.4.23" @@ -512,9 +524,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "aws-config" -version = "1.6.2" +version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6fcc63c9860579e4cb396239570e979376e70aab79e496621748a09913f8b36" +checksum = "02a18fd934af6ae7ca52410d4548b98eb895aab0f1ea417d168d85db1434a141" dependencies = [ "aws-credential-types", "aws-runtime", @@ -559,6 +571,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b756939cb2f8dc900aa6dcd505e6e2428e9cae7ff7b028c49e3946efa70878" dependencies = [ "aws-lc-sys", + "untrusted 0.7.1", "zeroize", ] @@ -602,9 +615,9 @@ dependencies = [ [[package]] name = "aws-sdk-bedrockruntime" -version = "1.86.0" +version = "1.91.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db14a0566037a6c686ef075c406dec4b067537af3d76950522e9e89848ce7a5a" +checksum = "bd6ed0ecc5ea68b42c1f63f5b314ad4d6319bface82a9f0798f20894d8d8a568" dependencies = [ "aws-credential-types", "aws-runtime", @@ -621,16 +634,15 @@ dependencies = [ "fastrand", "http 0.2.12", "hyper 0.14.32", - "once_cell", "regex-lite", "tracing", ] [[package]] name = "aws-sdk-dynamodb" -version = "1.73.0" +version = "1.78.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d954f3581bd7254f42bbaa3a21dfd99d40a14d82a324d2012b8f3ea0d15f12b" +checksum = "0434e40e8fc81081bfc1bcde7e8fefca08ac75bc3b0a5cee17c7ff6bfd96af42" dependencies = [ "aws-credential-types", "aws-runtime", @@ -644,16 +656,15 @@ dependencies = [ "bytes", "fastrand", "http 0.2.12", - "once_cell", "regex-lite", "tracing", ] [[package]] name = "aws-sdk-kms" -version = "1.67.0" +version = "1.72.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b650cf9e1e153ab13acd3aa1f73b271dac14e019353ec0b0c176f24a21bad03" +checksum = "0eef6a94141a43ee28404bf135828ad9bdd4936bfa2a84ad8dea355c94646a35" dependencies = [ "aws-credential-types", "aws-runtime", @@ -667,16 +678,15 @@ dependencies = [ "bytes", "fastrand", "http 0.2.12", - "once_cell", "regex-lite", "tracing", ] [[package]] name = "aws-sdk-s3" -version = "1.84.0" +version = "1.89.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2111975ef21dc06542918479df0df861b273eb8d99e6bb987da469b546dce32c" +checksum = "f676a4b4d6ff85d9906339a8da6d407f787ab64b00c9742272a12a6f31f33313" dependencies = [ "aws-credential-types", "aws-runtime", @@ -699,7 +709,6 @@ dependencies = [ "http 1.3.1", "http-body 0.4.6", "lru", - "once_cell", "percent-encoding", "regex-lite", "sha2", @@ -709,9 +718,9 @@ dependencies = [ [[package]] name = "aws-sdk-sso" -version = "1.66.0" +version = "1.71.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "858007b14d0f1ade2e0124473c2126b24d334dc9486ad12eb7c0ed14757be464" +checksum = "95a4fd09d6e863655d99cd2260f271c6d1030dc6bfad68e19e126d2e4c8ceb18" dependencies = [ "aws-credential-types", "aws-runtime", @@ -725,16 +734,15 @@ dependencies = [ "bytes", "fastrand", "http 0.2.12", - "once_cell", "regex-lite", "tracing", ] [[package]] name = "aws-sdk-ssooidc" -version = "1.67.0" +version = "1.72.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b83abf3ae8bd10a014933cc2383964a12ca5a3ebbe1948ad26b1b808e7d0d1f2" +checksum = "3224ab02ebb3074467a33d57caf6fcb487ca36f3697fdd381b0428dc72380696" dependencies = [ "aws-credential-types", "aws-runtime", @@ -748,16 +756,15 @@ dependencies = [ "bytes", "fastrand", "http 0.2.12", - "once_cell", "regex-lite", "tracing", ] [[package]] name = "aws-sdk-sts" -version = "1.67.0" +version = "1.72.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74e8e9ac4a837859c8f1d747054172e1e55933f02ed34728b0b34dea0591ec84" +checksum = "f6933f189ed1255e78175fbd73fb200c0aae7240d220ed3346f567b0ddca3083" dependencies = [ "aws-credential-types", "aws-runtime", @@ -772,16 +779,15 @@ dependencies = [ "aws-types", "fastrand", "http 0.2.12", - "once_cell", "regex-lite", "tracing", ] [[package]] name = "aws-sigv4" -version = "1.3.1" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3503af839bd8751d0bdc5a46b9cac93a003a353e635b0c12cf2376b5b53e41ea" +checksum = "3734aecf9ff79aa401a6ca099d076535ab465ff76b46440cf567c8e70b65dc13" dependencies = [ "aws-credential-types", "aws-smithy-eventstream", @@ -818,16 +824,14 @@ dependencies = [ [[package]] name = "aws-smithy-checksums" -version = "0.63.1" +version = "0.63.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b65d21e1ba6f2cdec92044f904356a19f5ad86961acf015741106cdfafd747c0" +checksum = "d2f77a921dbd2c78ebe70726799787c1d110a2245dd65e39b20923dfdfb2deee" dependencies = [ "aws-smithy-http", "aws-smithy-types", "bytes", - "crc32c", - "crc32fast", - "crc64fast-nvme", + "crc-fast", "hex", "http 0.2.12", "http-body 0.4.6", @@ -872,9 +876,9 @@ dependencies = [ [[package]] name = "aws-smithy-http-client" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8aff1159006441d02e57204bf57a1b890ba68bedb6904ffd2873c1c4c11c546b" +checksum = "7e44697a9bded898dcd0b1cb997430d949b87f4f8940d91023ae9062bf218250" dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api", @@ -886,7 +890,7 @@ dependencies = [ "hyper 0.14.32", "hyper 1.6.0", "hyper-rustls 0.24.2", - "hyper-rustls 0.27.5", + "hyper-rustls 0.27.6", "hyper-util", "pin-project-lite", "rustls 0.21.12", @@ -1032,9 +1036,9 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.74" +version = "0.3.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" dependencies = [ "addr2line", "cfg-if", @@ -1104,7 +1108,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "cexpr", "clang-sys", "itertools 0.12.1", @@ -1144,9 +1148,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" [[package]] name = "bitpacking" @@ -1286,7 +1290,7 @@ dependencies = [ "rayon", "safetensors", "thiserror 1.0.69", - "yoke", + "yoke 0.7.5", "zip", ] @@ -1326,9 +1330,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.21" +version = "1.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8691782945451c1c383942c4874dbe63814f61cb57ef773cda2972682b7bb3c0" +checksum = "16595d3be041c03b09d08d0858631facccee9221e579704070e6e9e4915d3bc7" dependencies = [ "jobserver", "libc", @@ -1434,7 +1438,7 @@ checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" dependencies = [ "glob", "libc", - "libloading 0.8.6", + "libloading 0.8.8", ] [[package]] @@ -1557,9 +1561,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" dependencies = [ "core-foundation-sys", "libc", @@ -1582,9 +1586,9 @@ dependencies = [ [[package]] name = "crc" -version = "3.2.1" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" +checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" dependencies = [ "crc-catalog", ] @@ -1596,12 +1600,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] -name = "crc32c" -version = "0.6.8" +name = "crc-fast" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a47af21622d091a8f0fb295b88bc886ac74efcc613efc19f5d0b21de5c89e47" +checksum = "add8d3a4c789d77eeb0f0e3c1035f73610d017f9047e87db94f89c02a56d8fef" dependencies = [ - "rustc_version", + "cc", + "crc", + "digest", + "libc", + "rand 0.9.1", + "regex", ] [[package]] @@ -1613,15 +1622,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "crc64fast-nvme" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4955638f00a809894c947f85a024020a20815b65a5eea633798ea7924edab2b3" -dependencies = [ - "crc", -] - [[package]] name = "crossbeam-channel" version = "0.5.15" @@ -1671,7 +1671,7 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "crossterm_winapi", "parking_lot", "rustix 0.38.44", @@ -2555,9 +2555,9 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.11" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" +checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" dependencies = [ "libc", "windows-sys 0.59.0", @@ -2574,9 +2574,9 @@ dependencies = [ [[package]] name = "ethnum" -version = "1.5.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0939f82868b77ef93ce3c3c3daf2b3c526b456741da5a1a4559e590965b6026b" +checksum = "ca81e6b4777c89fd810c25a4be2b1bd93ea034fbe58e6a75216a34c6b82c539b" [[package]] name = "event-listener" @@ -2737,8 +2737,8 @@ checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" [[package]] name = "fsst" -version = "0.27.3" -source = "git+https://github.com/lancedb/lance.git?tag=v0.27.3-beta.2#7531cae52d87505cbb20cabc5fa82095c8f6404e" +version = "0.28.1" +source = "git+https://github.com/lancedb/lance.git?tag=v0.28.1-beta.1#b5257881f0a45038f8ab0cbd6bc239408bd510a1" dependencies = [ "rand 0.8.5", ] @@ -2973,15 +2973,16 @@ dependencies = [ [[package]] name = "generator" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" +checksum = "d18470a76cb7f8ff746cf1f7470914f900252ec36bbc40b569d74b1258446827" dependencies = [ + "cc", "cfg-if", "libc", "log", "rustversion", - "windows 0.58.0", + "windows 0.61.1", ] [[package]] @@ -3009,9 +3010,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ "cfg-if", "js-sys", @@ -3331,11 +3332,10 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.5" +version = "0.27.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" +checksum = "03a01595e11bdcec50946522c32dde3fc6914743000a68b93000965f2f02406d" dependencies = [ - "futures-util", "http 1.3.1", "hyper 1.6.0", "hyper-util", @@ -3345,27 +3345,33 @@ dependencies = [ "tokio", "tokio-rustls 0.26.2", "tower-service", - "webpki-roots", + "webpki-roots 1.0.0", ] [[package]] name = "hyper-util" -version = "0.1.11" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" +checksum = "b1c293b6b3d21eca78250dc7dbebd6b9210ec5530e038cbfe0661b5c47ab06e8" dependencies = [ + "base64 0.22.1", "bytes", "futures-channel", + "futures-core", "futures-util", "http 1.3.1", "http-body 1.0.1", "hyper 1.6.0", + "ipnet", "libc", + "percent-encoding", "pin-project-lite", "socket2", + "system-configuration", "tokio", "tower-service", "tracing", + "windows-registry", ] [[package]] @@ -3389,7 +3395,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.61.0", + "windows-core 0.61.2", ] [[package]] @@ -3403,21 +3409,22 @@ dependencies = [ [[package]] name = "icu_collections" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" dependencies = [ "displaydoc", - "yoke", + "potential_utf", + "yoke 0.8.0", "zerofrom", "zerovec", ] [[package]] -name = "icu_locid" -version = "1.5.0" +name = "icu_locale_core" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" dependencies = [ "displaydoc", "litemap", @@ -3426,31 +3433,11 @@ dependencies = [ "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.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" - [[package]] name = "icu_normalizer" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" dependencies = [ "displaydoc", "icu_collections", @@ -3458,67 +3445,54 @@ dependencies = [ "icu_properties", "icu_provider", "smallvec", - "utf16_iter", - "utf8_iter", - "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "1.5.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" [[package]] name = "icu_properties" -version = "1.5.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" dependencies = [ "displaydoc", "icu_collections", - "icu_locid_transform", + "icu_locale_core", "icu_properties_data", "icu_provider", - "tinystr", + "potential_utf", + "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "1.5.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" [[package]] name = "icu_provider" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" dependencies = [ "displaydoc", - "icu_locid", - "icu_provider_macros", + "icu_locale_core", "stable_deref_trait", "tinystr", "writeable", - "yoke", + "yoke 0.8.0", "zerofrom", + "zerotrie", "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.101", -] - [[package]] name = "ident_case" version = "1.0.1" @@ -3538,9 +3512,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ "icu_normalizer", "icu_properties", @@ -3605,6 +3579,16 @@ version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +[[package]] +name = "iri-string" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +dependencies = [ + "memchr", + "serde", +] + [[package]] name = "is_terminal_polyfill" version = "1.70.1" @@ -3661,9 +3645,9 @@ checksum = "9028f49264629065d057f340a86acb84867925865f73bbf8d47b4d149a7e88b8" [[package]] name = "jiff" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f02000660d30638906021176af16b17498bd0d12813dbfe7b276d8bc7f3c0806" +checksum = "a194df1107f33c79f4f93d02c80798520551949d59dfad22b6157048a88cca93" dependencies = [ "jiff-static", "log", @@ -3674,9 +3658,9 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c30758ddd7188629c6713fc45d1188af4f44c90582311d0c8d8c9907f60c48" +checksum = "6c6e1db7ed32c6c71b759497fae34bf7933636f75a251b9e736555da426f6442" dependencies = [ "proc-macro2", "quote", @@ -3711,7 +3695,7 @@ version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.3", "libc", ] @@ -3727,8 +3711,8 @@ dependencies = [ [[package]] name = "lance" -version = "0.27.3" -source = "git+https://github.com/lancedb/lance.git?tag=v0.27.3-beta.2#7531cae52d87505cbb20cabc5fa82095c8f6404e" +version = "0.28.1" +source = "git+https://github.com/lancedb/lance.git?tag=v0.28.1-beta.1#b5257881f0a45038f8ab0cbd6bc239408bd510a1" dependencies = [ "arrow", "arrow-arith", @@ -3791,8 +3775,8 @@ dependencies = [ [[package]] name = "lance-arrow" -version = "0.27.3" -source = "git+https://github.com/lancedb/lance.git?tag=v0.27.3-beta.2#7531cae52d87505cbb20cabc5fa82095c8f6404e" +version = "0.28.1" +source = "git+https://github.com/lancedb/lance.git?tag=v0.28.1-beta.1#b5257881f0a45038f8ab0cbd6bc239408bd510a1" dependencies = [ "arrow-array", "arrow-buffer", @@ -3809,8 +3793,8 @@ dependencies = [ [[package]] name = "lance-core" -version = "0.27.3" -source = "git+https://github.com/lancedb/lance.git?tag=v0.27.3-beta.2#7531cae52d87505cbb20cabc5fa82095c8f6404e" +version = "0.28.1" +source = "git+https://github.com/lancedb/lance.git?tag=v0.28.1-beta.1#b5257881f0a45038f8ab0cbd6bc239408bd510a1" dependencies = [ "arrow-array", "arrow-buffer", @@ -3846,8 +3830,8 @@ dependencies = [ [[package]] name = "lance-datafusion" -version = "0.27.3" -source = "git+https://github.com/lancedb/lance.git?tag=v0.27.3-beta.2#7531cae52d87505cbb20cabc5fa82095c8f6404e" +version = "0.28.1" +source = "git+https://github.com/lancedb/lance.git?tag=v0.28.1-beta.1#b5257881f0a45038f8ab0cbd6bc239408bd510a1" dependencies = [ "arrow", "arrow-array", @@ -3876,8 +3860,8 @@ dependencies = [ [[package]] name = "lance-datagen" -version = "0.27.3" -source = "git+https://github.com/lancedb/lance.git?tag=v0.27.3-beta.2#7531cae52d87505cbb20cabc5fa82095c8f6404e" +version = "0.28.1" +source = "git+https://github.com/lancedb/lance.git?tag=v0.28.1-beta.1#b5257881f0a45038f8ab0cbd6bc239408bd510a1" dependencies = [ "arrow", "arrow-array", @@ -3892,8 +3876,8 @@ dependencies = [ [[package]] name = "lance-encoding" -version = "0.27.3" -source = "git+https://github.com/lancedb/lance.git?tag=v0.27.3-beta.2#7531cae52d87505cbb20cabc5fa82095c8f6404e" +version = "0.28.1" +source = "git+https://github.com/lancedb/lance.git?tag=v0.28.1-beta.1#b5257881f0a45038f8ab0cbd6bc239408bd510a1" dependencies = [ "arrayref", "arrow", @@ -3932,8 +3916,8 @@ dependencies = [ [[package]] name = "lance-file" -version = "0.27.3" -source = "git+https://github.com/lancedb/lance.git?tag=v0.27.3-beta.2#7531cae52d87505cbb20cabc5fa82095c8f6404e" +version = "0.28.1" +source = "git+https://github.com/lancedb/lance.git?tag=v0.28.1-beta.1#b5257881f0a45038f8ab0cbd6bc239408bd510a1" dependencies = [ "arrow-arith", "arrow-array", @@ -3967,16 +3951,18 @@ dependencies = [ [[package]] name = "lance-index" -version = "0.27.3" -source = "git+https://github.com/lancedb/lance.git?tag=v0.27.3-beta.2#7531cae52d87505cbb20cabc5fa82095c8f6404e" +version = "0.28.1" +source = "git+https://github.com/lancedb/lance.git?tag=v0.28.1-beta.1#b5257881f0a45038f8ab0cbd6bc239408bd510a1" dependencies = [ "arrow", "arrow-array", "arrow-ord", "arrow-schema", "arrow-select", + "async-channel", "async-recursion", "async-trait", + "bitpacking", "bitvec", "bytes", "crossbeam-queue", @@ -4021,8 +4007,8 @@ dependencies = [ [[package]] name = "lance-io" -version = "0.27.3" -source = "git+https://github.com/lancedb/lance.git?tag=v0.27.3-beta.2#7531cae52d87505cbb20cabc5fa82095c8f6404e" +version = "0.28.1" +source = "git+https://github.com/lancedb/lance.git?tag=v0.28.1-beta.1#b5257881f0a45038f8ab0cbd6bc239408bd510a1" dependencies = [ "arrow", "arrow-arith", @@ -4061,8 +4047,8 @@ dependencies = [ [[package]] name = "lance-linalg" -version = "0.27.3" -source = "git+https://github.com/lancedb/lance.git?tag=v0.27.3-beta.2#7531cae52d87505cbb20cabc5fa82095c8f6404e" +version = "0.28.1" +source = "git+https://github.com/lancedb/lance.git?tag=v0.28.1-beta.1#b5257881f0a45038f8ab0cbd6bc239408bd510a1" dependencies = [ "arrow-array", "arrow-ord", @@ -4085,8 +4071,8 @@ dependencies = [ [[package]] name = "lance-table" -version = "0.27.3" -source = "git+https://github.com/lancedb/lance.git?tag=v0.27.3-beta.2#7531cae52d87505cbb20cabc5fa82095c8f6404e" +version = "0.28.1" +source = "git+https://github.com/lancedb/lance.git?tag=v0.28.1-beta.1#b5257881f0a45038f8ab0cbd6bc239408bd510a1" dependencies = [ "arrow", "arrow-array", @@ -4125,8 +4111,8 @@ dependencies = [ [[package]] name = "lance-testing" -version = "0.27.3" -source = "git+https://github.com/lancedb/lance.git?tag=v0.27.3-beta.2#7531cae52d87505cbb20cabc5fa82095c8f6404e" +version = "0.28.1" +source = "git+https://github.com/lancedb/lance.git?tag=v0.28.1-beta.1#b5257881f0a45038f8ab0cbd6bc239408bd510a1" dependencies = [ "arrow-array", "arrow-schema", @@ -4137,7 +4123,7 @@ dependencies = [ [[package]] name = "lancedb" -version = "0.19.1" +version = "0.20.0-beta.0" dependencies = [ "arrow", "arrow-array", @@ -4224,7 +4210,7 @@ dependencies = [ [[package]] name = "lancedb-node" -version = "0.19.1" +version = "0.19.2-beta.0" dependencies = [ "arrow-array", "arrow-ipc", @@ -4249,12 +4235,13 @@ dependencies = [ [[package]] name = "lancedb-nodejs" -version = "0.19.1" +version = "0.20.0-beta.0" dependencies = [ "arrow-array", "arrow-ipc", "arrow-schema", "async-trait", + "aws-lc-rs", "aws-lc-sys", "env_logger", "futures", @@ -4268,7 +4255,7 @@ dependencies = [ [[package]] name = "lancedb-python" -version = "0.22.1" +version = "0.23.0-beta.0" dependencies = [ "arrow", "env_logger", @@ -4381,19 +4368,19 @@ dependencies = [ [[package]] name = "libloading" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" +checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", - "windows-targets 0.52.6", + "windows-targets 0.53.0", ] [[package]] name = "libm" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a25169bd5913a4b437588a7e3d127cd6e90127b60e0ffbd834a38f1599e016b8" +checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libredox" @@ -4401,7 +4388,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "libc", ] @@ -4419,9 +4406,9 @@ checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" [[package]] name = "litemap" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "lock_api" @@ -4461,6 +4448,12 @@ dependencies = [ "hashbrown 0.15.3", ] +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + [[package]] name = "lz4" version = "1.28.1" @@ -4612,13 +4605,13 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4675,9 +4668,9 @@ dependencies = [ [[package]] name = "multimap" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" +checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" [[package]] name = "multiversion" @@ -4713,7 +4706,7 @@ version = "2.16.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55740c4ae1d8696773c78fdafd5d0e5fe9bc9f1b071c7ba493ba5c413a9184f3" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "ctor", "napi-derive", "napi-sys", @@ -4723,9 +4716,9 @@ dependencies = [ [[package]] name = "napi-build" -version = "2.1.6" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28acfa557c083f6e254a786e01ba253fc56f18ee000afcd4f79af735f73a6da" +checksum = "03acbfa4f156a32188bfa09b86dc11a431b5725253fc1fc6f6df5bed273382c4" [[package]] name = "napi-derive" @@ -4762,7 +4755,7 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "427802e8ec3a734331fec1035594a210ce1ff4dc5bc1950530920ab717964ea3" dependencies = [ - "libloading 0.8.6", + "libloading 0.8.8", ] [[package]] @@ -5009,6 +5002,12 @@ version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +[[package]] +name = "once_cell_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" + [[package]] name = "oneshot" version = "0.1.11" @@ -5017,11 +5016,11 @@ checksum = "b4ce411919553d3f9fa53a0880544cda985a112117a0444d5ff1e870a893d6ea" [[package]] name = "onig" -version = "6.4.0" +version = "6.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f" +checksum = "336b9c63443aceef14bea841b899035ae3abe89b7c486aaf4c5bd8aafedac3f0" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.9.1", "libc", "once_cell", "onig_sys", @@ -5029,9 +5028,9 @@ dependencies = [ [[package]] name = "onig_sys" -version = "69.8.1" +version = "69.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7" +checksum = "c7f86c6eef3d6df15f23bcfb6af487cbd2fed4e5581d58d5bf1f5f8b7f6727dc" dependencies = [ "cc", "pkg-config", @@ -5348,7 +5347,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "465f70d3e96b6d0b1a43c358ba451286b8c8bd56696feff020d65702aa33e35c" dependencies = [ "ahash", - "bitflags 2.9.0", + "bitflags 2.9.1", "bytemuck", "chrono", "chrono-tz 0.8.6", @@ -5422,7 +5421,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89b2632b1af668e2058d5f8f916d8fbde3cac63d03ae29a705f598e41dcfeb7f" dependencies = [ "ahash", - "bitflags 2.9.0", + "bitflags 2.9.1", "glob", "once_cell", "polars-arrow", @@ -5624,6 +5623,15 @@ dependencies = [ "portable-atomic", ] +[[package]] +name = "potential_utf" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +dependencies = [ + "zerovec", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -5636,7 +5644,7 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy 0.8.25", + "zerocopy", ] [[package]] @@ -5840,9 +5848,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.7" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3bd15a6f2967aef83887dcb9fec0014580467e33720d073560cf015a5683012" +checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" dependencies = [ "bytes", "cfg_aliases", @@ -5860,12 +5868,13 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.11" +version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcbafbbdbb0f638fe3f35f3c56739f77a8a1d070cb25603226c83339b391472b" +checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" dependencies = [ "bytes", - "getrandom 0.3.2", + "getrandom 0.3.3", + "lru-slab", "rand 0.9.1", "ring", "rustc-hash 2.1.1", @@ -5969,7 +5978,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.3", ] [[package]] @@ -6026,7 +6035,7 @@ version = "11.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] [[package]] @@ -6092,7 +6101,7 @@ version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] [[package]] @@ -6175,9 +6184,9 @@ checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" [[package]] name = "reqwest" -version = "0.12.15" +version = "0.12.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" +checksum = "e98ff6b0dbbe4d5a37318f433d4fc82babd21631f194d370409ceb2e40b2f0b5" dependencies = [ "async-compression", "base64 0.22.1", @@ -6190,7 +6199,7 @@ dependencies = [ "http-body 1.0.1", "http-body-util", "hyper 1.6.0", - "hyper-rustls 0.27.5", + "hyper-rustls 0.27.6", "hyper-util", "ipnet", "js-sys", @@ -6203,25 +6212,23 @@ dependencies = [ "quinn", "rustls 0.23.27", "rustls-native-certs 0.8.1", - "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper", - "system-configuration", "tokio", "tokio-rustls 0.26.2", "tokio-util", "tower", + "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots", - "windows-registry", + "webpki-roots 1.0.0", ] [[package]] @@ -6261,7 +6268,7 @@ dependencies = [ "cfg-if", "getrandom 0.2.16", "libc", - "untrusted", + "untrusted 0.9.0", "windows-sys 0.52.0", ] @@ -6348,7 +6355,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "errno", "libc", "linux-raw-sys 0.4.15", @@ -6361,7 +6368,7 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "errno", "libc", "linux-raw-sys 0.9.4", @@ -6391,7 +6398,7 @@ dependencies = [ "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.103.2", + "rustls-webpki 0.103.3", "subtle", "zeroize", ] @@ -6440,11 +6447,12 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" +checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" dependencies = [ "web-time", + "zeroize", ] [[package]] @@ -6454,26 +6462,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ "ring", - "untrusted", + "untrusted 0.9.0", ] [[package]] name = "rustls-webpki" -version = "0.103.2" +version = "0.103.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7149975849f1abb3832b246010ef62ccc80d3a76169517ada7188252b9cfb437" +checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" dependencies = [ "aws-lc-rs", "ring", "rustls-pki-types", - "untrusted", + "untrusted 0.9.0", ] [[package]] name = "rustversion" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" [[package]] name = "ryu" @@ -6528,7 +6536,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ "ring", - "untrusted", + "untrusted 0.9.0", ] [[package]] @@ -6561,7 +6569,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -6574,8 +6582,8 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" dependencies = [ - "bitflags 2.9.0", - "core-foundation 0.10.0", + "bitflags 2.9.1", + "core-foundation 0.10.1", "core-foundation-sys", "libc", "security-framework-sys", @@ -6815,18 +6823,18 @@ dependencies = [ [[package]] name = "snafu" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "223891c85e2a29c3fe8fb900c1fae5e69c2e42415e3177752e8718475efa5019" +checksum = "320b01e011bf8d5d7a4a4a4be966d9160968935849c83b918827f6a435e7f627" dependencies = [ "snafu-derive", ] [[package]] name = "snafu-derive" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c3c6b7927ffe7ecaa769ee0e3994da3b8cafc8f444578982c83ecb161af917" +checksum = "1961e2ef424c1424204d3a5d6975f934f56b6d50ff5732382d84ebf460e147f7" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -6836,9 +6844,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" dependencies = [ "libc", "windows-sys 0.52.0", @@ -7050,7 +7058,7 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec7dddc5f0fee506baf8b9fdb989e242f17e4b11c61dfbb0635b705217199eea" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "byteorder", "enum-as-inner", "libc", @@ -7078,7 +7086,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -7260,12 +7268,12 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tempfile" -version = "3.19.1" +version = "3.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" +checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" dependencies = [ "fastrand", - "getrandom 0.3.2", + "getrandom 0.3.3", "once_cell", "rustix 1.0.7", "windows-sys 0.59.0", @@ -7363,9 +7371,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.7.6" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" dependencies = [ "displaydoc", "zerovec", @@ -7420,9 +7428,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.44.2" +version = "1.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48" +checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" dependencies = [ "backtrace", "bytes", @@ -7522,6 +7530,24 @@ dependencies = [ "tower-service", ] +[[package]] +name = "tower-http" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fdb0c213ca27a9f57ab69ddb290fd80d970922355b83ae380b395d3986b8a2e" +dependencies = [ + "bitflags 2.9.1", + "bytes", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + [[package]] name = "tower-layer" version = "0.3.3" @@ -7671,6 +7697,12 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3" +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + [[package]] name = "untrusted" version = "0.9.0" @@ -7693,7 +7725,7 @@ dependencies = [ "serde_json", "socks", "url", - "webpki-roots", + "webpki-roots 0.26.11", ] [[package]] @@ -7713,12 +7745,6 @@ version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - [[package]] name = "utf8-ranges" version = "1.0.5" @@ -7739,11 +7765,11 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" +checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.3", "js-sys", "serde", "wasm-bindgen", @@ -7907,9 +7933,18 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.10" +version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37493cadf42a2a939ed404698ded7fb378bf301b5011f973361779a3a74f8c93" +checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" +dependencies = [ + "webpki-roots 1.0.0", +] + +[[package]] +name = "webpki-roots" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2853738d1cc4f2da3a225c18ec6c3721abb31961096e9dbf5ab35fa88b19cfdb" dependencies = [ "rustls-pki-types", ] @@ -7969,12 +8004,24 @@ dependencies = [ [[package]] name = "windows" -version = "0.58.0" +version = "0.61.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +checksum = "c5ee8f3d025738cb02bad7868bbb5f8a6327501e870bf51f1b455b0a2454a419" dependencies = [ - "windows-core 0.58.0", - "windows-targets 0.52.6", + "windows-collections", + "windows-core 0.61.2", + "windows-future", + "windows-link", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core 0.61.2", ] [[package]] @@ -7988,39 +8035,26 @@ dependencies = [ [[package]] name = "windows-core" -version = "0.58.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ - "windows-implement 0.58.0", - "windows-interface 0.58.0", - "windows-result 0.2.0", - "windows-strings 0.1.0", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-core" -version = "0.61.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" -dependencies = [ - "windows-implement 0.60.0", - "windows-interface 0.59.1", + "windows-implement", + "windows-interface", "windows-link", - "windows-result 0.3.2", - "windows-strings 0.4.0", + "windows-result", + "windows-strings 0.4.2", ] [[package]] -name = "windows-implement" -version = "0.58.0" +name = "windows-future" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", + "windows-core 0.61.2", + "windows-link", + "windows-threading", ] [[package]] @@ -8034,17 +8068,6 @@ dependencies = [ "syn 2.0.101", ] -[[package]] -name = "windows-interface" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", -] - [[package]] name = "windows-interface" version = "0.59.1" @@ -8062,45 +8085,36 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" +[[package]] +name = "windows-numerics" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +dependencies = [ + "windows-core 0.61.2", + "windows-link", +] + [[package]] name = "windows-registry" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" dependencies = [ - "windows-result 0.3.2", + "windows-result", "windows-strings 0.3.1", "windows-targets 0.53.0", ] [[package]] name = "windows-result" -version = "0.2.0" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-result" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ "windows-link", ] -[[package]] -name = "windows-strings" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" -dependencies = [ - "windows-result 0.2.0", - "windows-targets 0.52.6", -] - [[package]] name = "windows-strings" version = "0.3.1" @@ -8112,9 +8126,9 @@ dependencies = [ [[package]] name = "windows-strings" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ "windows-link", ] @@ -8217,6 +8231,15 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] +[[package]] +name = "windows-threading" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +dependencies = [ + "windows-link", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -8399,9 +8422,9 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9fb597c990f03753e08d3c29efbfcf2019a003b4bf4ba19225c158e1549f0f3" +checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" dependencies = [ "memchr", ] @@ -8412,20 +8435,14 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] -[[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" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" [[package]] name = "wyz" @@ -8456,7 +8473,19 @@ checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ "serde", "stable_deref_trait", - "yoke-derive", + "yoke-derive 0.7.5", + "zerofrom", +] + +[[package]] +name = "yoke" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive 0.8.0", "zerofrom", ] @@ -8473,12 +8502,15 @@ dependencies = [ ] [[package]] -name = "zerocopy" -version = "0.7.35" +name = "yoke-derive" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ - "zerocopy-derive 0.7.35", + "proc-macro2", + "quote", + "syn 2.0.101", + "synstructure", ] [[package]] @@ -8487,18 +8519,7 @@ version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" dependencies = [ - "zerocopy-derive 0.8.25", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.101", + "zerocopy-derive", ] [[package]] @@ -8540,21 +8561,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" [[package]] -name = "zerovec" -version = "0.10.4" +name = "zerotrie" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" dependencies = [ - "yoke", + "displaydoc", + "yoke 0.8.0", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" +dependencies = [ + "yoke 0.8.0", "zerofrom", "zerovec-derive", ] [[package]] name = "zerovec-derive" -version = "0.10.3" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 96674d8e..29f3a0a3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,14 +21,14 @@ categories = ["database-implementations"] rust-version = "1.78.0" [workspace.dependencies] -lance = { "version" = "=0.27.3", "features" = ["dynamodb"], tag = "v0.27.3-beta.2", git="https://github.com/lancedb/lance.git" } -lance-io = { version = "=0.27.3", tag = "v0.27.3-beta.2", git="https://github.com/lancedb/lance.git" } -lance-index = { version = "=0.27.3", tag = "v0.27.3-beta.2", git="https://github.com/lancedb/lance.git" } -lance-linalg = { version = "=0.27.3", tag = "v0.27.3-beta.2", git="https://github.com/lancedb/lance.git" } -lance-table = { version = "=0.27.3", tag = "v0.27.3-beta.2", git="https://github.com/lancedb/lance.git" } -lance-testing = { version = "=0.27.3", tag = "v0.27.3-beta.2", git="https://github.com/lancedb/lance.git" } -lance-datafusion = { version = "=0.27.3", tag = "v0.27.3-beta.2", git="https://github.com/lancedb/lance.git" } -lance-encoding = { version = "=0.27.3", tag = "v0.27.3-beta.2", git="https://github.com/lancedb/lance.git" } +lance = { "version" = "=0.28.1", "features" = ["dynamodb"], tag = "v0.28.1-beta.1", git="https://github.com/lancedb/lance.git" } +lance-io = { version = "=0.28.1", tag = "v0.28.1-beta.1", git="https://github.com/lancedb/lance.git" } +lance-index = { version = "=0.28.1", tag = "v0.28.1-beta.1", git="https://github.com/lancedb/lance.git" } +lance-linalg = { version = "=0.28.1", tag = "v0.28.1-beta.1", git="https://github.com/lancedb/lance.git" } +lance-table = { version = "=0.28.1", tag = "v0.28.1-beta.1", git="https://github.com/lancedb/lance.git" } +lance-testing = { version = "=0.28.1", tag = "v0.28.1-beta.1", git="https://github.com/lancedb/lance.git" } +lance-datafusion = { version = "=0.28.1", tag = "v0.28.1-beta.1", git="https://github.com/lancedb/lance.git" } +lance-encoding = { version = "=0.28.1", tag = "v0.28.1-beta.1", git="https://github.com/lancedb/lance.git" } # Note that this one does not include pyarrow arrow = { version = "54.1", optional = false } arrow-array = "54.1" diff --git a/nodejs/Cargo.toml b/nodejs/Cargo.toml index 087c74e6..b9c91f6d 100644 --- a/nodejs/Cargo.toml +++ b/nodejs/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "lancedb-nodejs" edition.workspace = true -version = "0.19.2-beta.0" +version = "0.20.0-beta.0" license.workspace = true description.workspace = true repository.workspace = true @@ -30,6 +30,7 @@ log.workspace = true # Workaround for build failure until we can fix it. aws-lc-sys = "=0.28.0" +aws-lc-rs = "=1.13.0" [build-dependencies] napi-build = "2.1" diff --git a/nodejs/__test__/table.test.ts b/nodejs/__test__/table.test.ts index 390b25fb..1bad17fe 100644 --- a/nodejs/__test__/table.test.ts +++ b/nodejs/__test__/table.test.ts @@ -1506,7 +1506,9 @@ describe.each([arrow15, arrow16, arrow17, arrow18])( ]; const table = await db.createTable("test", data); await table.createIndex("text", { - config: Index.fts(), + config: Index.fts({ + withPosition: true, + }), }); const results = await table.search("lance").toArray(); @@ -1559,7 +1561,9 @@ describe.each([arrow15, arrow16, arrow17, arrow18])( ]; const table = await db.createTable("test", data); await table.createIndex("text", { - config: Index.fts(), + config: Index.fts({ + withPosition: true, + }), }); const results = await table.search("world").toArray(); diff --git a/nodejs/package.json b/nodejs/package.json index c1ae89e1..d9c9534c 100644 --- a/nodejs/package.json +++ b/nodejs/package.json @@ -11,7 +11,7 @@ "ann" ], "private": false, - "version": "0.19.2-beta.0", + "version": "0.20.0-beta.0", "main": "dist/index.js", "exports": { ".": "./dist/index.js", diff --git a/nodejs/src/index.rs b/nodejs/src/index.rs index 900505ce..8179d2d7 100644 --- a/nodejs/src/index.rs +++ b/nodejs/src/index.rs @@ -125,32 +125,30 @@ impl Index { ascii_folding: Option, ) -> Self { let mut opts = FtsIndexBuilder::default(); - let mut tokenizer_configs = opts.tokenizer_configs.clone(); if let Some(with_position) = with_position { opts = opts.with_position(with_position); } if let Some(base_tokenizer) = base_tokenizer { - tokenizer_configs = tokenizer_configs.base_tokenizer(base_tokenizer); + opts = opts.base_tokenizer(base_tokenizer); } if let Some(language) = language { - tokenizer_configs = tokenizer_configs.language(&language).unwrap(); + opts = opts.language(&language).unwrap(); } if let Some(max_token_length) = max_token_length { - tokenizer_configs = tokenizer_configs.max_token_length(Some(max_token_length as usize)); + opts = opts.max_token_length(Some(max_token_length as usize)); } if let Some(lower_case) = lower_case { - tokenizer_configs = tokenizer_configs.lower_case(lower_case); + opts = opts.lower_case(lower_case); } if let Some(stem) = stem { - tokenizer_configs = tokenizer_configs.stem(stem); + opts = opts.stem(stem); } if let Some(remove_stop_words) = remove_stop_words { - tokenizer_configs = tokenizer_configs.remove_stop_words(remove_stop_words); + opts = opts.remove_stop_words(remove_stop_words); } if let Some(ascii_folding) = ascii_folding { - tokenizer_configs = tokenizer_configs.ascii_folding(ascii_folding); + opts = opts.ascii_folding(ascii_folding); } - opts.tokenizer_configs = tokenizer_configs; Self { inner: Mutex::new(Some(LanceDbIndex::FTS(opts))), diff --git a/python/Cargo.toml b/python/Cargo.toml index f2bc9d68..28b2597c 100644 --- a/python/Cargo.toml +++ b/python/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lancedb-python" -version = "0.22.2-beta.0" +version = "0.23.0-beta.0" edition.workspace = true description = "Python bindings for LanceDB" license.workspace = true diff --git a/python/python/lancedb/index.py b/python/python/lancedb/index.py index fc665f93..b91e5582 100644 --- a/python/python/lancedb/index.py +++ b/python/python/lancedb/index.py @@ -102,7 +102,7 @@ class FTS: Attributes ---------- - with_position : bool, default True + with_position : bool, default False Whether to store the position of the token in the document. Setting this to False can reduce the size of the index and improve indexing speed, but it will disable support for phrase queries. @@ -118,25 +118,25 @@ class FTS: ignored. lower_case : bool, default True Whether to convert the token to lower case. This makes queries case-insensitive. - stem : bool, default False + stem : bool, default True Whether to stem the token. Stemming reduces words to their root form. For example, in English "running" and "runs" would both be reduced to "run". - remove_stop_words : bool, default False + remove_stop_words : bool, default True Whether to remove stop words. Stop words are common words that are often removed from text before indexing. For example, in English "the" and "and". - ascii_folding : bool, default False + ascii_folding : bool, default True Whether to fold ASCII characters. This converts accented characters to their ASCII equivalent. For example, "café" would be converted to "cafe". """ - with_position: bool = True + with_position: bool = False base_tokenizer: Literal["simple", "raw", "whitespace"] = "simple" language: str = "English" max_token_length: Optional[int] = 40 lower_case: bool = True - stem: bool = False - remove_stop_words: bool = False - ascii_folding: bool = False + stem: bool = True + remove_stop_words: bool = True + ascii_folding: bool = True @dataclass diff --git a/python/python/lancedb/remote/table.py b/python/python/lancedb/remote/table.py index 2de418da..1a9af9d8 100644 --- a/python/python/lancedb/remote/table.py +++ b/python/python/lancedb/remote/table.py @@ -149,15 +149,15 @@ class RemoteTable(Table): *, replace: bool = False, wait_timeout: timedelta = None, - with_position: bool = True, + with_position: bool = False, # tokenizer configs: base_tokenizer: str = "simple", language: str = "English", max_token_length: Optional[int] = 40, lower_case: bool = True, - stem: bool = False, - remove_stop_words: bool = False, - ascii_folding: bool = False, + stem: bool = True, + remove_stop_words: bool = True, + ascii_folding: bool = True, ): config = FTS( with_position=with_position, diff --git a/python/python/lancedb/table.py b/python/python/lancedb/table.py index cb225f3b..f4d52663 100644 --- a/python/python/lancedb/table.py +++ b/python/python/lancedb/table.py @@ -829,15 +829,15 @@ class Table(ABC): writer_heap_size: Optional[int] = 1024 * 1024 * 1024, use_tantivy: bool = True, tokenizer_name: Optional[str] = None, - with_position: bool = True, + with_position: bool = False, # tokenizer configs: base_tokenizer: BaseTokenizerType = "simple", language: str = "English", max_token_length: Optional[int] = 40, lower_case: bool = True, - stem: bool = False, - remove_stop_words: bool = False, - ascii_folding: bool = False, + stem: bool = True, + remove_stop_words: bool = True, + ascii_folding: bool = True, wait_timeout: Optional[timedelta] = None, ): """Create a full-text search index on the table. @@ -867,7 +867,7 @@ class Table(ABC): use_tantivy: bool, default True If True, use the legacy full-text search implementation based on tantivy. If False, use the new full-text search implementation based on lance-index. - with_position: bool, default True + with_position: bool, default False Only available with use_tantivy=False If False, do not store the positions of the terms in the text. This can reduce the size of the index and improve indexing speed. @@ -885,13 +885,13 @@ class Table(ABC): lower_case : bool, default True Whether to convert the token to lower case. This makes queries case-insensitive. - stem : bool, default False + stem : bool, default True Whether to stem the token. Stemming reduces words to their root form. For example, in English "running" and "runs" would both be reduced to "run". - remove_stop_words : bool, default False + remove_stop_words : bool, default True Whether to remove stop words. Stop words are common words that are often removed from text before indexing. For example, in English "the" and "and". - ascii_folding : bool, default False + ascii_folding : bool, default True Whether to fold ASCII characters. This converts accented characters to their ASCII equivalent. For example, "café" would be converted to "cafe". wait_timeout: timedelta, optional @@ -1972,15 +1972,15 @@ class LanceTable(Table): writer_heap_size: Optional[int] = 1024 * 1024 * 1024, use_tantivy: bool = True, tokenizer_name: Optional[str] = None, - with_position: bool = True, + with_position: bool = False, # tokenizer configs: base_tokenizer: BaseTokenizerType = "simple", language: str = "English", max_token_length: Optional[int] = 40, lower_case: bool = True, - stem: bool = False, - remove_stop_words: bool = False, - ascii_folding: bool = False, + stem: bool = True, + remove_stop_words: bool = True, + ascii_folding: bool = True, ): if not use_tantivy: if not isinstance(field_names, str): @@ -1990,6 +1990,7 @@ class LanceTable(Table): tokenizer_configs = { "base_tokenizer": base_tokenizer, "language": language, + "with_position": with_position, "max_token_length": max_token_length, "lower_case": lower_case, "stem": stem, @@ -2000,7 +2001,6 @@ class LanceTable(Table): tokenizer_configs = self.infer_tokenizer_configs(tokenizer_name) config = FTS( - with_position=with_position, **tokenizer_configs, ) diff --git a/python/python/tests/docs/test_search.py b/python/python/tests/docs/test_search.py index 545ac161..913b2138 100644 --- a/python/python/tests/docs/test_search.py +++ b/python/python/tests/docs/test_search.py @@ -156,6 +156,9 @@ async def test_vector_search_async(): # --8<-- [end:search_result_async_as_list] +@pytest.mark.skipif( + os.name == "nt", reason="Need to fix https://github.com/lancedb/lance/issues/3905" +) def test_fts_fuzzy_query(): uri = "data/fuzzy-example" db = lancedb.connect(uri) @@ -189,6 +192,9 @@ def test_fts_fuzzy_query(): } +@pytest.mark.skipif( + os.name == "nt", reason="Need to fix https://github.com/lancedb/lance/issues/3905" +) def test_fts_boost_query(): uri = "data/boost-example" db = lancedb.connect(uri) @@ -234,6 +240,9 @@ def test_fts_boost_query(): ) +@pytest.mark.skipif( + os.name == "nt", reason="Need to fix https://github.com/lancedb/lance/issues/3905" +) def test_fts_native(): # --8<-- [start:basic_fts] uri = "data/sample-lancedb" @@ -282,6 +291,9 @@ def test_fts_native(): # --8<-- [end:fts_incremental_index] +@pytest.mark.skipif( + os.name == "nt", reason="Need to fix https://github.com/lancedb/lance/issues/3905" +) @pytest.mark.asyncio async def test_fts_native_async(): # --8<-- [start:basic_fts_async] diff --git a/python/python/tests/test_fts.py b/python/python/tests/test_fts.py index daf45093..b2d31c92 100644 --- a/python/python/tests/test_fts.py +++ b/python/python/tests/test_fts.py @@ -287,7 +287,7 @@ def test_search_fts_phrase_query(table): assert False except Exception: pass - table.create_fts_index("text", use_tantivy=False, replace=True) + table.create_fts_index("text", use_tantivy=False, with_position=True, replace=True) results = table.search("puppy").limit(100).to_list() phrase_results = table.search('"puppy runs"').limit(100).to_list() assert len(results) > len(phrase_results) @@ -312,7 +312,7 @@ async def test_search_fts_phrase_query_async(async_table): assert False except Exception: pass - await async_table.create_index("text", config=FTS()) + await async_table.create_index("text", config=FTS(with_position=True)) results = await async_table.query().nearest_to_text("puppy").limit(100).to_list() phrase_results = ( await async_table.query().nearest_to_text('"puppy runs"').limit(100).to_list() @@ -649,7 +649,7 @@ def test_fts_on_list(mem_db: DBConnection): } ) table = mem_db.create_table("test", data=data) - table.create_fts_index("text", use_tantivy=False) + table.create_fts_index("text", use_tantivy=False, with_position=True) res = table.search("lance").limit(5).to_list() assert len(res) == 3 diff --git a/python/src/index.rs b/python/src/index.rs index 54cc4701..8b19efee 100644 --- a/python/src/index.rs +++ b/python/src/index.rs @@ -3,7 +3,7 @@ use lancedb::index::vector::IvfFlatIndexBuilder; use lancedb::index::{ - scalar::{BTreeIndexBuilder, FtsIndexBuilder, TokenizerConfig}, + scalar::{BTreeIndexBuilder, FtsIndexBuilder}, vector::{IvfHnswPqIndexBuilder, IvfHnswSqIndexBuilder, IvfPqIndexBuilder}, Index as LanceDbIndex, }; @@ -38,19 +38,17 @@ pub fn extract_index_params(source: &Option>) -> PyResult Ok(LanceDbIndex::LabelList(Default::default())), "FTS" => { let params = source.extract::()?; - let inner_opts = TokenizerConfig::default() + let inner_opts = FtsIndexBuilder::default() .base_tokenizer(params.base_tokenizer) .language(¶ms.language) .map_err(|_| PyValueError::new_err(format!("LanceDB does not support the requested language: '{}'", params.language)))? + .with_position(params.with_position) .lower_case(params.lower_case) .max_token_length(params.max_token_length) .remove_stop_words(params.remove_stop_words) .stem(params.stem) .ascii_folding(params.ascii_folding); - let mut opts = FtsIndexBuilder::default() - .with_position(params.with_position); - opts.tokenizer_configs = inner_opts; - Ok(LanceDbIndex::FTS(opts)) + Ok(LanceDbIndex::FTS(inner_opts)) }, "IvfFlat" => { let params = source.extract::()?; diff --git a/rust/lancedb/Cargo.toml b/rust/lancedb/Cargo.toml index 1ffd9863..e94e8530 100644 --- a/rust/lancedb/Cargo.toml +++ b/rust/lancedb/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lancedb" -version = "0.19.2-beta.0" +version = "0.20.0-beta.0" edition.workspace = true description = "LanceDB: A serverless, low-latency vector database for AI applications" license.workspace = true diff --git a/rust/lancedb/src/index/scalar.rs b/rust/lancedb/src/index/scalar.rs index 7d381961..980b57d2 100644 --- a/rust/lancedb/src/index/scalar.rs +++ b/rust/lancedb/src/index/scalar.rs @@ -51,35 +51,7 @@ pub struct BitmapIndexBuilder {} #[derive(Debug, Clone, Default)] pub struct LabelListIndexBuilder {} -/// Builder for a full text search index -/// -/// A full text search index is an index on a string column that allows for full text search -#[derive(Debug, Clone)] -pub struct FtsIndexBuilder { - /// Whether to store the position of the tokens - /// This is used for phrase queries - pub with_position: bool, - - pub tokenizer_configs: TokenizerConfig, -} - -impl Default for FtsIndexBuilder { - fn default() -> Self { - Self { - with_position: true, - tokenizer_configs: TokenizerConfig::default(), - } - } -} - -impl FtsIndexBuilder { - /// Set the with_position flag - pub fn with_position(mut self, with_position: bool) -> Self { - self.with_position = with_position; - self - } -} - pub use lance_index::scalar::inverted::query::*; -pub use lance_index::scalar::inverted::TokenizerConfig; pub use lance_index::scalar::FullTextSearchQuery; +pub use lance_index::scalar::InvertedIndexParams as FtsIndexBuilder; +pub use lance_index::scalar::InvertedIndexParams; diff --git a/rust/lancedb/src/io/object_store.rs b/rust/lancedb/src/io/object_store.rs index 66fa7053..47e58d1e 100644 --- a/rust/lancedb/src/io/object_store.rs +++ b/rust/lancedb/src/io/object_store.rs @@ -197,16 +197,8 @@ mod test { #[tokio::test] async fn test_e2e() { - let dir1 = tempfile::tempdir() - .unwrap() - .into_path() - .canonicalize() - .unwrap(); - let dir2 = tempfile::tempdir() - .unwrap() - .into_path() - .canonicalize() - .unwrap(); + let dir1 = tempfile::tempdir().unwrap().keep().canonicalize().unwrap(); + let dir2 = tempfile::tempdir().unwrap().keep().canonicalize().unwrap(); let secondary_store = LocalFileSystem::new_with_prefix(dir2.to_str().unwrap()).unwrap(); let object_store_wrapper = Arc::new(MirroringObjectStoreWrapper { diff --git a/rust/lancedb/src/remote/table.rs b/rust/lancedb/src/remote/table.rs index 8987a75c..2f69fc27 100644 --- a/rust/lancedb/src/remote/table.rs +++ b/rust/lancedb/src/remote/table.rs @@ -995,16 +995,12 @@ impl BaseTable for RemoteTable { Index::Bitmap(_) => ("BITMAP", None), Index::LabelList(_) => ("LABEL_LIST", None), Index::FTS(fts) => { - let with_position = fts.with_position; - let configs = serde_json::to_value(fts.tokenizer_configs).map_err(|e| { - Error::InvalidInput { - message: format!("failed to serialize FTS index params {:?}", e), - } + let params = serde_json::to_value(&fts).map_err(|e| Error::InvalidInput { + message: format!("failed to serialize FTS index params {:?}", e), })?; - for (key, value) in configs.as_object().unwrap() { + for (key, value) in params.as_object().unwrap() { body[key] = value.clone(); } - body["with_position"] = serde_json::Value::Bool(with_position); ("FTS", None) } Index::Auto => { @@ -2460,14 +2456,10 @@ mod tests { expected_body["metric_type"] = distance_type.to_lowercase().into(); } if let Index::FTS(fts) = ¶ms { - expected_body["with_position"] = fts.with_position.into(); - expected_body["base_tokenizer"] = "simple".into(); - expected_body["language"] = "English".into(); - expected_body["max_token_length"] = 40.into(); - expected_body["lower_case"] = true.into(); - expected_body["stem"] = false.into(); - expected_body["remove_stop_words"] = false.into(); - expected_body["ascii_folding"] = false.into(); + let params = serde_json::to_value(fts).unwrap(); + for (key, value) in params.as_object().unwrap() { + expected_body[key] = value.clone(); + } } assert_eq!(body, expected_body); diff --git a/rust/lancedb/src/table.rs b/rust/lancedb/src/table.rs index 9ef7a190..eff000a9 100644 --- a/rust/lancedb/src/table.rs +++ b/rust/lancedb/src/table.rs @@ -1977,16 +1977,12 @@ impl NativeTable { } let mut dataset = self.dataset.get_mut().await?; - let fts_params = lance_index::scalar::InvertedIndexParams { - with_position: fts_opts.with_position, - tokenizer_config: fts_opts.tokenizer_configs, - }; dataset .create_index( &[field.name()], IndexType::Inverted, None, - &fts_params, + &fts_opts, replace, ) .await?;