Releases: unum-cloud/USearch
Releases · unum-cloud/USearch
Release v2.25.1
Release: v2.25.1 [skip ci]
Patch
v2.25: Float8, Performance, Correctness, & Portability!
This "minor" release is equally important for performance, correctness, and portability!
- It brings 1000+ new SIMD kernels from the NumKong v7 release, previously SimSIMD. This adds support for significantly more x86, Arm, RISC-V, PowerPC, LoongArch, and WASM hardware-accelerated backends to what is already one of the most portable production-grade search engine online.
- Undefined behaviours & graph refinements, by @yoonseok-kim, @DavIvek, @madmax983 🫶
- Memory safety improvements, by @knowack1, @dustinhealy, & @rschu1ze 🫶
- Linting and documentation improvements, by @Samoed & @l1x 🫶
- Compatibility patches, by @JadenGeller, @anaslimem, & @fran6co 🫶
- Memory stats, by @swasik & @Crow-de-a-d 🫶
Minor
- Add: Native UInt8
u8API and Float6e2m3&e3m2quantization (e4db172) - Add: Float8 support with E5M2 & E4M3 (bf80af8)
- Add: Uniform hardware caps queries across SDKs (11f4d5c)
- Add: expose
memory_statsthrough Rust FFI bindings (d5a04f8) - Add:
memory_stats_tstruct with per-tape breakdowns (8f6f8f6)
Patch
- Fix: Harden
min&maxsymbols for MSVC (a270651) - Fix: Over-allocate & in-align striped locks (7aee20f)
- Improve: Print stack-traces in test singal-handlers (94c7ec9)
- Make: Bump NumKong to v7.5 (c666f16)
- Docs: Benchmarks table formatting (95963ff)
- Improve: Extended
uint8interfaces for Java, Swift, ObjC, JS (82e1196) - Improve: Smaller & faster
striped_locks_gt(4a47d18) - Docs: SIFT & BigANN subsets (1c60c6c)
- Fix: ObjC compilation issue for
b1x8(d54383d) - Improve: Reuse
eval.random_vectorsin scripts (2b7f469) - Improve: New benchmarking suite (4f6d2d7)
- Improve: Type annotations for Python SDK & scripts (c39b15b)
- Improve: Extended
bench.cpp& datasets for 100M scale (dac569c) - Make: Split flaky CIBW jobs & add retries (5e0139f)
- Make: Drop deprecated SPDX license expression (#744) (145272f)
- Make: Drop EOL language versions and standardize CI runners (0a803a9)
- Fix: Don't compile NumKong C sources into macOS wheel (2c44fb0)
- Make: Bump deps for MSVC compatibility (36981b0)
- Fix: Re-generate JNI header for
hardware_accelerationchecks (1a3a86e) - Make: Newer
/Zc:preprocessorfor MSVC inbinding.gyp(79cd39f) - Fix: NumKong dispatch for Sorensen and binary vector dimensions (5546dd6)
- Fix: Use
RAND_MAXinstead ofINT_MAXfor random test vectors (d45a616) - Make: Use "Trusted Publishing" for NPM (8a02676)
- Fix: PyTest module collision & PeachPy on Python 3.11+ (8ed2548)
- Fix: MSVC type-conversion warnings (#709) (98486cd)
- Improve: Test remove/rename/multi in Rust (17dfac3)
- Make: Arm32-friendly NumKong version (6f65872)
- Fix: Move-safe init for Rust SDK (#704) (05b5eb0)
- Fix: Check for
config.expansionearly inadd(fb2e2f7) - Fix: Stale vector references in
refine_withinindex_get::update(#731) (451e2d5) - Fix: Deduplication logic in
form_reverse_links_(#729) (9ea8233) - Make: Switch to Ruff linter (#737) (bff98ed)
- Fix: OpenMP flags forwarding in
build.rs(#724) (46256a2) - Fix: Heap-buffer-overflow in HNSW search via sorted_buffer_gt (5697c60)
- Fix: Serial Float16 conversion fallbacks (49b8b2c)
- Make: Avoid
npm ciin non-dependency-locked state (42e9203) - Make: Bump Clang due to LLVM optimizer bug (5bd15bb)
- Make: Don't version removed dependency lock files (62724d4)
- Fix: Hash set iterator returns deleted tombstones in
equal_range(#727) (7d95f6f) - Fix:
MAP_FAILEDon Windows (#742) (786a7d9) - Fix: Escalate
MAP_FAILEDon POSIX (#722) (ba47347) - Fix: Strip nested sub-directories from package distributions (#733) (3832c02)
- Fix: Guard Float16 APIs with
#if arch(arm64)in Swift SDK (#739) (5bcf787) - Docs: Rust
Cosmetric docstring (#734) (c9ff5b8) - Fix: Avoid
IntPtrglobal out-of-scope alias in C# (5413341) - Improve: Expose & test Float8 in Java, ObjC, Go, JS, Rust (bebb539)
- Fix: Stale symbol name in
joindemo (ef0dc4f) - Improve: Allow non-sequential vector IDs in
bench(11bcde1) - Make: Pull NumKong from PyPi (1b46d1b)
- Make: Pull NumKong via CMake (b0f8708)
- Make: Pull SwiftPM NumKong dependency (eede286)
- Make: Pull NumKong crate (46347ec)
- Make: Switch from SimSIMD v6 to NumKong v7 submodule (b2361c3)
- Docs: Link capitalization (98eeb9e)
- Fix: Set equality comparison in Numba JIT PyTest (30381b7)
- Fix: Avoid duplicate neighbor slots in HNSW reverse links (#699) (6995246)
- Fix: Postfix operators for member/candidate iterators in
index_gt(#718) (7fbf086) - Fix: Potential UB in
index_dense::add(#721) (6b69e95) - Fix: Accurately track total allocated memory in
memory_mapping_allocator_gt(#608) (3c25f20) - Fix: Python
serialized_lengthmissing argument (#714) (5cde3fc)
Release v2.24.0
Release: v2.24.0 [skip ci]
Minor
Patch
Release v2.23.0
Release v2.22.0
Release: v2.22.0 [skip ci]
Minor
- Add: Missing GoLang APIs (3590961)
- Add: FilteredSearch and FilteredSearchI8 functions (1f3e086)
- Add: Nil handler validation in FilteredSearchUnsafe (0df8511)
- Add: Filtered search callback support in GoLang bindings (4829a29)
Patch
- Fix: Consistent threads capacity in Go tests (cc86de9)
- Make: Bump SimSIMD (42aef88)
- Fix: Missing
switchcases for settings (6e84b1f) - Fix: Keep GoLang vectors alive (ba7d699)
- Improve: Make FilteredSearchHandler fields public (55c1ea8)
- Fix: FilteredSearchHandler typo and use correct C function (3cd62ce)
- Improve: Add data field to FilteredSearchHandler test (a17c6fa)
- Fix: Filtered search test logic and remove debug output (95f713e)
- Improve: FilteredSearchUnsafe documentation (72a9f5a)
- Improve: Fewer conditional locks for immutable index views (#689) (4f02166)
- Fix: static is not thread safe (8938d6e)
- Fix: check maxResults > 0 (f109269)
- Fix: exact search return results with size querySize * maxResults (c8adc05)
- Make: Bump CI versions (7685a67)
- Make: Wrong ISA extensions for Windows JNI builds (42ff470)
v2.21.4: Concurrency Patches
Release v2.21.3
Release v2.21.2
Release v2.21.1
v2.21: New GoLang & Java APIs ☕
Thanks to @cpegeric for his proposals and PRs 👏
Minor
- Add: All new test suite for Go (1f190b4)
- Add:
io.Closerinterface support (fd79bf7) - Add: New GoLang APIs for more types (d1f34af)
Patch
- Fix: Allow reserving threads in Java (55b5f76)
- Docs: Cleaner code & reserve semantics (1d6ae88)
- Improve: Pass Go static checks (584e201)
- Fix: Avoid default
=0outside of the implementation (07c890d) - Make:
reinstall cmakeon newer macOS runners (e70b57f) - Improve: Rename *WithPointer to *Unsafe (12ee352)
- Improve: Test new GoLang APIs (f222b5f)
Hashes
- docs.tar.gz :
14db79018eb907d7742950cef309cd906056abc17ba6f813de44703aa2af91de - hashes.md :
c6cb480b52dbf1af878b2a62ecc87c8aaa473bc59ee111cefd4866e99b568b06 - usearch-2.21.0-javadoc.jar :
3ff69fd8813191e025215a0e5677731da3133dc5743f781846684df7a62d5a96 - usearch-2.21.0-sources.jar :
69a8375f56cf6e54b45510d82be33708a4b35ba8309e5846596440b06e85da96 - usearch-2.21.0.jar :
fdcb44b9a27d2a8100ba2370acacadf7ed6c3a16017e286d7b5ace3df0160fc8 - usearch-v2.21.0.tar.gz :
6c0af5a3e4369cb145f158961b3d17bb6f7040e2454d93f98a980d60e3565042 - usearch-v2.21.0.zip :
5322dc8a05f90027291eea10dd3362ad6f6928430ad103576e62365112b2b57c - usearch_android_arm32_2.21.0.zip :
b379b60ed944378ddeb2aeb17a60ad6088959b7fd15a57e2e0f5293faf66bf24 - usearch_android_arm64_2.21.0.zip :
574ff8cd40344dab9c76277644620860b4dc9503bb4d6b5a9840478c1f866865 - usearch_linux_amd64_2.21.0.deb :
39bdc54eab5fa19d7f089fdf7adc49b404b3f90580358bb162c1868dd416582a - usearch_linux_amd64_2.21.0.so :
41e9db5b9826a5e1993564843869834f80a4a912d9b7bc2140ae666572a06034 - usearch_linux_arm64_2.21.0.deb :
43bdf6c50e6092a2e30fe86ee9356f86c1143aedf1bd662d9c9bbf68d0823f8c - usearch_linux_arm64_2.21.0.so :
9db3deee3646c0621eeef636a66005da627f9a9e2a3b0b465e13c9b3746ab318 - usearch_macos_arm64_2.21.0.zip :
721fa7a81bc103a46e1af60581dae3feceac1fd4443504c7e133cca5c93a674e - usearch_macos_x86_64_2.21.0.zip :
ebd93366df427d9d925e015413af978eded63cab282f10ad71677a027fbf6b87 - usearch_sqlite_linux_amd64_2.21.0.so :
3836b136ef276a66227ece46a17f880e4247d2c491bc3523c46c87fe89d7376d - usearch_sqlite_linux_arm64_2.21.0.so :
4cb951d2030d27e289cf86ec1a92b524a737a915eba1ac6050ccb48b64f98c8f - usearch_sqlite_macos_arm64_2.21.0.dylib :
433452b4b95b59892062da573145506722e8179a909a4ea3b57b820b959afa29 - usearch_sqlite_macos_x86_64_2.21.0.dylib :
5d316a5cda4688b79d0d1caf658bd8a8b9696ff924312c4e41e3dfcfe2790e4c - usearch_wasm_2.21.0.tar.gz :
821e73bf9ea2b8cce2d0f6f8b78b846e6b02e713691ec7ced278d2bc5c0ca67e - usearch_wasm_2.21.0.zip :
101f2690bf69d904c5590b3e528f258c2d0180e8399d9ce5ba1fdab1b40b7267 - usearch_windows_arm64_2.21.0.tar :
b65b200e886358c811862042b4268d743c36817784a408a6cd314474ed1ad5a2 - usearch_windows_x64_2.21.0.tar :
71540c21f1f380d7fce85beda68bdaf4ebabec29ef7944501e528e8079e27af4 - usearch_windows_x86_2.21.0.tar :
8d11a91b1a254de2d9b185c8f86ba99881976f7e431bcecd029a1b0041201cb1