🎉 IndexWeaver v1.0.0 - Initial Stable Release
We are thrilled to announce the first stable release of IndexWeaver!
IndexWeaver is a highly optimized, lightweight in-memory ID-to-index registry plugin explicitly designed for modern open.mp servers.
This release introduces a robust C++ storage engine to completely eliminate linear array searches O(n) from your Pawn scripts, replacing them with instantaneous O(1) memory lookups.
⚡ Key Features in this Release
- Hybrid Storage Engine: Utilizes a highly optimized
std::arrayfast-path for frequent registry categories (0-63), and falls back to a sparserobin_hood::unordered_flat_mapfor dynamic IDs. - Zero-Allocation Retention: Erasing elements in the fast path retains capacity, preventing costly OS heap allocations during frequent re-insertions.
- Aggressive Memory Cleanup: Dynamic fallback registries instantly destroy themselves when emptied, completely avoiding memory leaks in long-running servers.
- Thread-safe synchronization: Perfectly aligned with the open.mp main thread execution cycle.
📊 Performance Benchmarks
In our synthetic stress tests compiled under MSVC /O2:
- 10 Million Insertions: ~0.92 seconds
- 10 Million Lookups: ~0.62 seconds
- 10 Million Removals: ~0.69 seconds
⚙️ How to Install
- Download the pre-compiled binary for your architecture from the Assets section below:
IndexWeaver.dllfor Windows (32-bit).IndexWeaver.sofor Linux (32-bit).
- Move the binary into your server's
components/directory. - Download
indexweaver.incfrom the source code and place it into your pawn compiler'sinclude/folder. - Add the component to your
config.jsonfile.
Built natively with C++20 and CMake. Enjoy zero-latency mapping!
Full Changelog: https://github.com/itskoleban/IndexWeaver/commits/v1.0.0