Skip to content

Releases: itskoleban/IndexWeaver

Release list

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 13 Jul 20:47

🎉 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::array fast-path for frequent registry categories (0-63), and falls back to a sparse robin_hood::unordered_flat_map for 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

  1. Download the pre-compiled binary for your architecture from the Assets section below:
    • IndexWeaver.dll for Windows (32-bit).
    • IndexWeaver.so for Linux (32-bit).
  2. Move the binary into your server's components/ directory.
  3. Download indexweaver.inc from the source code and place it into your pawn compiler's include/ folder.
  4. Add the component to your config.json file.

Built natively with C++20 and CMake. Enjoy zero-latency mapping!

Full Changelog: https://github.com/itskoleban/IndexWeaver/commits/v1.0.0