Releases: rryam/VecturaKit
5.1.0
What's Changed
- Improve storage and BM25 search performance by @rudrankriyam in #74
- Use bounded top-K selection to avoid full result sorting by @rudrankriyam in #75
- Add realistic workload benchmark profile and optional CI stage by @rudrankriyam in #76
Full Changelog: 5.0.0...5.1.0
5.0.0
Highlights
- Add core SwiftEmbedder model-family resolution refactor and static embedding dimension handling improvements.
- Add ModernBERT support in SwiftEmbedder.
- Add RoBERTa and XLM-RoBERTa support in SwiftEmbedder.
- Add embedder validation and BERT fallback robustness fixes.
- Align package platform minimums with runtime requirements and clean up redundant availability guardrails.
Included pull requests
4.0.0
Breaking Changes
- VecturaMLXKit extracted to separate repository:
VecturaMLXKit,VecturaMLXCLI, and MLX-related tests have been moved to rryam/VecturaMLXKit. This removes the need for Package Traits (SE-0450). - Package Traits removed: The
MLXtrait no longer exists. MLX users should addVecturaMLXKitas a separate dependency. - swift-tools-version reverted to 6.0: Swift 6.1 is no longer required for this package.
- mlx-swift-lm dependency removed: This package no longer pulls in any MLX-related dependencies.
Migration
Before (3.0.0 with traits):
.package(url: "https://github.com/rryam/VecturaKit.git", from: "3.0.0", traits: ["MLX"])After (4.0.0):
.package(url: "https://github.com/rryam/VecturaKit.git", from: "4.0.0"),
.package(url: "https://github.com/rryam/VecturaMLXKit.git", from: "1.0.0"),Both packages can be added directly via Xcode's "Add Package Dependencies" UI -- no workarounds needed.
Fixes #66
Full Changelog
3.0.0
Highlights
- Package Traits (SE-0450): MLX dependencies are now optional. Consumers using only
VecturaKitorVecturaNLKitno longer download the heavymlx-swift-lmpackage, significantly improving build times. - Swift 6.1+ Required: Bumped
swift-tools-versionto 6.1 for Package Traits support. - Smaller Default Model: Switched from
potion-retrieval-32Mtopotion-base-4Mfor faster downloads and CI.
Breaking Changes
- Swift 6.1+ / Xcode 16.3+ required
- MLX users must enable the trait explicitly:
.package(url: "https://github.com/rryam/VecturaKit.git", from: "3.0.0", traits: ["MLX"])
Usage
Without MLX (lightweight):
.package(url: "https://github.com/rryam/VecturaKit.git", from: "3.0.0")With MLX:
.package(url: "https://github.com/rryam/VecturaKit.git", from: "3.0.0", traits: ["MLX"])Changes
- Added
#if canImport(MLXEmbedders)guards to all MLX-dependent source files - Updated CI to run MLX tests separately with
--traits MLX - Default model changed to
minishlab/potion-base-4M(users can still specify the 32M model explicitly)
Full Changelog
2.5.3
Highlights
- Hardened add/index rollback to restore overwritten documents and keep storage/search consistent.
- Stricter config/input validation (DB name, search options, embedder inputs); BM25 handles empty queries safely.
- Performance suites now default to a deterministic embedder for faster runs (opt-in real embeddings via
VECTURA_PERF_USE_SWIFT_EMBEDDER=1). - Updated MLX dependencies to latest mlx-swift-lm (2.30.3 / mlx-swift 0.30.3).
- CLI vector dimension is auto-detected by default; indexed storage guide defaults aligned.
Changes
- Storage I/O and candidate loading now fail fast on partial batch failures.
- Added tests for BM25 index and config validation; stabilized perf/memory expectations.
Tests
swift test -c release --filter PerformanceTestsswift test
2.5.2
- Fix SwiftLint trailing whitespace failures in MLXEmbedder.\n- Update the README installation snippet to 2.5.2.
2.5.1
Release 2.5.1: Throttled concurrency for file operations
Fixes potential file descriptor exhaustion and memory pressure when working with large document collections.
Changes:
- Add ConcurrencyExtensions.swift with concurrentMap, concurrentForEach, orderedConcurrentMap, and chunked utilities
- Replace unbounded parallel file loading in FileStorageProvider with throttled concurrentMap (max 50 concurrent operations)
- Add saveDocuments batch method to VecturaStorage protocol
- Implement saveDocuments in FileStorageProvider with nonisolated file I/O for true parallel writes while maintaining actor cache safety
2.5.0
Release 2.5.0: NaturalLanguage framework support via VecturaNLKit
Adds support for Apple's NaturalLanguage framework through a new VecturaNLKit module, providing contextual sentence embeddings with zero external dependencies.
2.4.0
Release 2.4.0: Package dependency updates and StaticEmbeddings model support
2.3.1
Release 2.3.1: Input validation, error handling improvements, and code quality fixes