Releases: photostructure/sqlite-vec
Release list
v1.2.0
Removed
- Removed the in-tree Go bindings (
bindings/go/) and thebuild-ncruces-goCI job. The CGO bindings were never published by this fork, and thencruces/go-sqlite3WASM build broke when upstream migrated to wasm2go, which no longer supports injecting a custom C extension at build time. Go users should use upstreamasg017/sqlite-vecorncruces/go-sqlite3's built-inext/vec1extension.
Fixed
- Hardened the
optimizecommand (INSERT INTO t(t) VALUES('optimize')) against a native crash on tables with metadata columns.optimizenow validates each metadata chunk's blob size and slot offset before copying and fails as a catchableSQLITE_ERRORon malformed internal state, instead of risking heap corruption or a host-process abort (EXC_BREAKPOINT/SIGTRAP). - Fixed a per-row memory leak of vector buffers during
optimize(tens of MB on large compactions). - Fixed error-masking in the metadata-copy path that could report a failed copy as success, and a related blob-handle leak; guarded a latent double-free of the chunk-validity buffers.
DELETEnow propagates metadata-clear failures instead of silently returning success.
Commits
Full Changelog: v1.1.1...v1.2.0
v1.1.1
Full Changelog: v1.1.0...v1.1.1
v1.1.0
Full Changelog: v1.0.1...v1.1.0
v1.0.1
Infrastructure
- Fixed Windows CI builds in
npm-release.yaml: corrected MSVC flags (removed invalid GCC flags), fixed DLL output path, added security hardening for both x64 and ARM64 - Removed unused upstream
release.yaml(would have erroneously published to PyPI/RubyGems/crates.io) - Cleaned up Makefile: removed dead variables and phantom targets, added
loadable-msvc-x64/loadable-msvc-arm64targets
Full Changelog: v1.0.0...v1.0.1
v1.0.0
Changed
- npm package renamed from
@mceachen/sqlite-vecto@photostructure/sqlite-vec
About this fork
This package is a community fork of Alex Garcia's excellent sqlite-vec, building on Vlad Lasky's community fork which merged 15+ upstream PRs. We're grateful to both for their foundational work.
PhotoStructure depends on sqlite-vec for production vector search and is committed to maintaining this fork for as long as we need it. Our current focus is:
- Stability: Memory leak fixes, sanitizer-verified error paths, comprehensive test coverage
- Node.js packaging: Prebuilt binaries for all major platforms (including Alpine/musl and Windows ARM64), Electron support, no post-install scripts
The version was bumped to 1.0.0 to signal the package rename and avoid confusion with the 0.x releases under the previous name. The underlying C extension is unchanged from 0.4.1.
All code remains open source under the original MIT/Apache-2.0 dual license.
Full Changelog: v0.4.1...v1.0.0
v0.4.1
v0.4.0
v0.3.3
v0.3.2
Added
- Memory testing framework (
c8654d0)- Valgrind and AddressSanitizer support via
make test-memory - Catches memory leaks, use-after-free, and buffer overflows
- Valgrind and AddressSanitizer support via
Fixed
-
Memory leaks in KNN queries (
e4d3340,df2c2fc,f05a360)- Fixed leaks in
vec0Filter_knnmetadata IN clause processing - Fixed leaks and potential crashes in
vec_static_blob_entriesfilter - Ensured
knn_datais freed on error paths
- Fixed leaks in
-
Memory leaks in vtab lifecycle (
5f667d8,49dcce7)- Fixed leaks in
vec0_initandvec0Destroyerror paths - Added NULL check before blob read to prevent crashes
vec0_freenow properly frees partition, auxiliary, and metadata column names
- Fixed leaks in
-
Cosine distance with zero vectors (
5d1279b)- Returns 1.0 (max distance) instead of NaN for zero-magnitude vectors
Commits
Full Changelog: v0.3.1...v0.3.2
v0.3.1
Added
-
Lua binding with IEEE 754 compliant float serialization (
1d3c258)- New
bindings/lua/sqlite_vec.luamodule for Lua 5.1+ serialize_f32()for IEEE 754 binary formatserialize_json()for JSON format- Example script in
examples/simple-lua/ - Incorporates upstream PR #237 with extensive bugfixes for float encoding
- New
-
Safer automated release workflow (
6d06b7d)prepare-releasejob creates a release branch before building- All builds use the release branch with correct version baked in
- Main branch only updated after successful npm publish
- If any step fails, main is untouched
Fixed
-
Numpy header parsing: fixed
&&→||logic bug (90e0099) -
Go bindings patch updated for new SQLite source (
ceb488c)- Updated
bindings/go/ncruces/go-sqlite3.patchfor compatibility with latest SQLite
- Updated
-
npm-release workflow improvements
Commits
Full Changelog: v0.3.0...v0.3.1