Powerful Tool for Big Data Problems

BitMagic Library helps to develop high-throughput search systems, promote combination of hardware optimization and on the fly compression to fit inverted indexes and binary fingerprints into memory, perform thousands of set-algebraic operations in near real-time for search space reduction and result-set ranking.

Elements of search systems can be found not just in databases but in middleware services, visualization systems, desktop tools. Any system dealing with large number of data, search, predictive behavior needs to solve problems where BitMagic Library excels.

C and C++

BitMagic C++ Templates library offers STL friendly containers and iterators, all portable yet investing into low level optimizations. Our templates are header-only designed for easy integration into your big project. We provide lean (no RTTI, no STL, no exceptions) mapping into C language (JNI into Java and Scala - work in progress).

Storage and communications

Efficient serialization algorithms for saving containers. Serialization tools are provided for all containers, you can use it with embedded systems (like Berkeley DB), large scale RDBMS systems (Oracle, MS SQL, MySQL) or NoSQL (memcached).


Bit-vectors can be serialized and sent over network for cross-platform data exchange and streaming, used for construction of network middleware, appliances and micro-services.


The mission of our project is to share tools, and expertise, use cases and know-how of search systems, bit-vectors, inverted lists, compression techniques, libraries, programming language bindings, etc.

Getting started

BitMagic C++ Library implements easy, header only programming model.

Public code repository

BitMagic Library is hosted on GitHub and SourceForge.

Use cases

Use cases for various applications of BitMagic

Design principles

Articles about design and performance optimizations.