Vectorwave v0.2.05 released
🚀 VectorWave v0.2.05 Release Notes
"Experience Unmatched Performance with the New Rust Core"
In version 0.2.05, we have completely re-engineered the core data ingestion and logging module by porting it to Rust. By breaking free from the Global Interpreter Lock (GIL) of Python, VectorWave can now process massive amounts of log data in real-time without compromising the performance of your main application.
🔥 Highlights
1. 🦀 Introducing Rust Core Engine (vectorwave_core)
- The
WeaviateBatchManager, previously reliant on Python'sthreadingandqueue, has been rewritten in Rust. - True Parallelism: Leveraging Rust's native threads, log ingestion now runs independently in the background, consuming negligible CPU cycles from the main Python process.
- High-Performance Queuing: By integrating
crossbeam-channel, a lock-free concurrency library in Rust, we achieved an over 10x increase in throughput.
2. ⚡️ Liberation from the GIL
- I/O-bound operations (database transmission) and data queuing no longer contend for the Python GIL.
- This ensures that your main application logic (e.g.,
check.py) runs significantly faster and remains stable even under heavy traffic loads.
3. 🛠️ Modern Build System (Maturin)
- We have adopted Maturin, the standard tool for building hybrid Python/Rust packages.
- Migrated from
setuptools-rusttomaturinto ensure build stability and simplify the release process. - Seamless Installation: Users can simply run
pip install vectorwaveto automatically download and install the optimized pre-compiled Rust binary (Wheel). No Rust toolchain installation is required for end-users.
📋 Changelog
Features & Improvements
feat(core): Implementedvectorwave_corecrate using PyO3 and Maturin.feat(batch): UpdatedWeaviateBatchManagerto detect the Rust Core and operate in hybrid mode with a graceful fallback to Python.feat(build): Switched build backend tomaturininpyproject.tomland removed legacysetup.py.
CI/CD
ci(release): Updated GitHub Actions workflows to automatically build and upload Wheels for Linux, Windows, and macOS to PyPI upon release.
Refactoring
refactor: Renamed internal method_flush_batchto_flush_batch_corefor better clarity.refactor: Restructured package layout to integratevectorwave.vectorwave_coresubmodule.
📦 Installation & Upgrade
Existing users can upgrade to the latest version via pip:
pip install --upgrade vectorwave
Contributors
- @Cozymori (Junyeong Gim) - Rust Porting & Architecture Design