SwayDB is a type-safe & non-blocking key-value storage library for single/multiple disks and in-memory storage.
It's an implementation of Log-structured merge-tree written in Scala with asynchronous Leveled Compaction based on push-pull strategy built on the Actor model.
It supports configurable Graph like file format for faster reads and has compression support for both memory & persistent databases.
SwayDB alternatives and similar packages
Based on the "Database" category
Do you think we are missing an alternative of SwayDB or a related project?
Embeddable persistent and in-memory database. Resource efficiency, performance and easy data management with simple functional APIs.
See documentation - SwayDB.io (currently being updated for latest version).
Performance (old benchmark for v0.2 - #119)
|In memory||up to
View detailed benchmark results here.
- Java & Kotlin APIs.
- Single or multiple disks persistent, in-memory or periodically persistent.
- Simple data types -
- Simple Stream based iteration following collections APIs.
- Atomic updates and inserts with transactions.
- Custom updates using JVM function.
- TTL - auto expiring key-values.
- Range update, remove & expire.
- Non-blocking with customisable non-blocking or blocking APIs.
- Key only iterations (Lazily fetched values).
- Configurable compression with LZ4 & Snappy
- Configurable core internals.
- Duplicate values can be eliminated with compressDuplicateValues.
- A small type-safe Actor implementation.
- IO type for type-safe error handling.
Related GitHub projects
- SwayDB.java.examples - Java examples demonstrating features and APIs.
- SwayDB.kotlin.examples - Kotlin examples demonstrating features and APIs.
- SwayDB.scala.examples - Scala examples demonstrating features and APIs.
- SwayDB.benchmark - Benchmarks for write and read performance.
- SwayDB.stress - Stress tests.
- SwayDB.website - Website code.
Undergoing frequent changes & beta testing. Backward binary compatibility is not yet a priority for minor releases unless it's requested.
Thank you Jetbrains for providing an open-source licence for their awesome development tools.