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)
Storage type | Performance |
---|---|
Persistent | up to 308,000 writes/sec & 316,000 reads/sec |
In memory | up to 653,000 writes/sec & 628,000 reads/sec |
View detailed benchmark results here.
- Java & Kotlin APIs.
- Single or multiple disks persistent, in-memory or periodically persistent.
- Simple data types -
Map[K, V]
&Set[T]
. - 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.
Undergoing beta & performance testing. Backward binary compatibility is not yet a priority for minor releases unless it's requested.
- 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.
Contributions are welcomed following the Scala code of conduct.
Thank you Jetbrains for providing an open-source licence for their awesome development tools.