| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-01-11 | 1.6 kB | |
| v0.2.2 source code.tar.gz | 2026-01-11 | 1.6 MB | |
| v0.2.2 source code.zip | 2026-01-11 | 1.9 MB | |
| Totals: 3 Items | 3.6 MB | 0 | |
What's New in v0.2.2
CompactArc - Memory-Efficient Reference Counting (#9)
- Introduced
CompactArc<T>, a thread-safe reference-counted pointer without weak reference support - Saves 8 bytes per allocation compared to
std::Arc(16 bytes vs 24 bytes overhead) - Particularly effective for
Valuestorage in rows and indexes
Memory Optimizations (#9)
- ColumnarResult: Column-major storage for window functions, reducing allocations from O(rows) to O(columns) with lazy row materialization
- Deferred projection: For
ORDER BY + LIMITqueries, defer projection until after sorting/limiting to reduce allocations from O(matched) to O(limit) - ParallelVec: Direct parallel writes to disjoint indices in window functions, eliminating per-partition Vec allocations
- Arc\<str> keys: Zero-cost key cloning in hot per-row loops for correlated subquery evaluation
CompactVec and RowVec (#7)
- CompactVec\<T>: A 16-byte vector (vs Vec's 24 bytes) - 33% smaller footprint per Row instance
- RowVec: Thread-local pooled
Vec<(i64, Row)>with best-fit allocation, reducing allocation churn for repeated query execution
Bug Fixes
- Fix streaming path for non-correlated scalar subqueries (were unnecessarily disabled from streaming)
- Add bounds checking to
CompactVecextend/from_iter to prevent buffer overflow from malicious iterators
Other Changes
- Add optional mimalloc allocator (
--features mimalloc) - Add fuzz testing targets for SQL parser, expressions, queries, and transactions
Full Changelog: https://github.com/stoolap/stoolap/compare/v0.2.1...v0.2.2