Volver al ranking

speedb-io/speedb

C++speedb.io

A RocksDB compliant high performance scalable embedded key-value store

key-value-storekvsstorage-enginespeedbembeddedperformancerocksdbscalekafka-streams
Crecimiento de estrellas
Estrellas
1k
Forks
82
Crecimiento semanal
Issues
136
5001k
ago 2022nov 2023mar 2025jul 2026
README

GitHub GitHub contributors GitHub pull requests GitHub closed pull requests

Speedb

WebsiteDocsCommunity DiscordVideos

A first-of-its-kind, community-led key-value storage engine, designed to support modern data sets.

Speedb is a 100% RocksDB compatible, drop-in library, focused on high performance, optimized for modern storage hardware and scale, on-premise and in the cloud. We strive to simplify the usability of complex data engines as well as stabilize and improve performance for any use case.

We are building an open source community where RocksDB and Speedb users and developers can interact, improve, share knowledge, and learn best practices. You are welcome to join our community, contribute, and participate in the development of the next generation storage engine. We welcome any questions or comments you may have. Please use issues to submit them, and pull requests to make contributions.

Join us to build the next generation key-value storage engine!

📊 Example Benchmark

Below is a graph comparing Speedb and RocksDB running a massive random write workload.

The test was running on a database with 80 million objects, while the value size is 1KB and 50 threads.

The graph below shows how Speedb can handle massive write workloads while maintaining consistent performance over time and without stalling, thanks to its improved delayed write mechanism.

random-writes-delayed-writes

You can read more about the new delayed write mechanism and other features and enhancements in the Speedb documentation.

💬 Why use Speedb?

And many more!

🛣️ Roadmap

The product roadmap provides a snapshot of the features we are currently developing, what we are planning for the future, and the items that have already been delivered.

We have added a column with items that are awaiting community feedback. We invite you to participate in our polls inside, share your thoughts about topics that are important to you, and let us know if there is anything else you would like to see on the list.

👷‍♀️ Usage

  • If speedb is in your default library path:

    In your CMakeLists.txt add:

    target_link_libraries(${PROJECT_NAME} speedb)
    

    where PROJECT_NAME is the name of your target application which uses speedb

  • Otherwise, you have to include the path to the folder the library is in like so:

    target_link_libraries(${PROJECT_NAME} /path/to/speedb/library/folder)
    

Usage of the library in your code is the same regardless of whether you statically linked the library or dynamically linked it, and examples can be found under the examples directory. The public interface is in include. Callers should not include or rely on the details of any other header files in this package. Those internal APIs may be changed without warning.

⛓️ Build dependencies

Please refer to the file INSTALL.md for a list of all the dependencies and how to install them across different platforms.

🔨 Building Speedb

Debug:

mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug [cmake options]
make speedb

By default the build type is Debug.

Release:

mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release [cmake options]
make speedb

This will build the static library. If you want to build the dynamic library, use:

make speedb-shared

If you want make to increase the number of cores used for building, simply use the -j option.

If you want to build a specific target:

make [target name]

For development and functional testing, go with the debug version which includes more assertions and debug prints. Otherwise, for production or performance testing, we recommend building a release version which is more optimized.

📈 Performance

We are using DBbench to test performance and progress between the versions. It is available under tools and also in the artifact for direct download. In there you can also find a readme with the commands we are using to get you started.

📚 Documentation

You can find a detailed description of all Speedb features here.

Speedb's documentation repository allows you to enhance, add content and fix issues.

❔ Questions

  • For live discussion with the community you can use our official Discord channel.

🌎 Join us

Speedb is committed to a welcoming and inclusive environment where everyone can contribute.

🫴 Contributing code

See the contributing guide.

License

Speedb is open-source and licensed under the Apache 2.0 License.

Repositorios relacionados
redis/redis

For developers, who are building real-time data-driven applications, Redis is the preferred, fastest, and most feature-rich cache, data structure server, and document and vector query engine.

COtherdatabasekey-value
redis.io
75.6k24.7k
valkey-io/valkey

A flexible distributed key-value database that is optimized for caching and other realtime workloads.

CBSD 3-Clause "New" or "Revised" Licensecachedatabase
valkey.io
26.6k1.2k
apple/foundationdb

FoundationDB - the open source, distributed, transactional key-value store

C++Apache License 2.0key-value-storetransactional
apple.github.io/foundationdb/
16.5k1.5k
dicedb/dicedb

Open-source, low-latency key/value engine built on Valkey with query subscriptions and hierarchical storage tiers.

COtherdatabasestorage-engine
dicedb.io
10.8k1.4k
microsoft/FASTER

Fast persistent recoverable log and key-value store + cache, in C# and C++.

C#MIT Licensekey-value-storehash-table
aka.ms/FASTER
6.6k596
skyzh/mini-lsm

A course of building an LSM-Tree storage engine (database) in a week.

Rustcrates.ioApache License 2.0databaselsm-tree
skyzh.github.io/mini-lsm/
4.1k619
orhanobut/hawk

✔️ Secure, simple key-value storage for Android

JavaMavenApache License 2.0hawkstorage
4k397
olric-data/olric

Distributed, in-memory key/value store and cache. It can be used as an embedded Go library and a language-independent service.

GoGo ModulesApache License 2.0key-value-storecache
3.5k147
buraksezer/olric

Distributed, in-memory key/value store and cache. It can be used as an embedded Go library and a language-independent service.

GoGo ModulesApache License 2.0key-value-storecache
3.2k122
gruns/ImmortalDB

:nut_and_bolt: A relentless key-value store for the browser.

JavaScriptnpmMIT Licensejavascriptstorage
3.1k60
grantjenks/python-diskcache

Python disk-backed cache (Django-compatible). Faster than Redis and Memcached. Pure-Python.

PythonPyPIOtherpythoncache
grantjenks.com/docs/diskcache/
2.9k175
skytable/skytable

Skytable is a modern scalable NoSQL database with BlueQL, designed for performance, scalability and flexibility. Skytable gives you spaces, models, data types, complex collections and more to build powerful experiences

Rustcrates.ioGNU Affero General Public License v3.0nosqldatabase
skytable.io
2.7k92