Popularity
4.0
Growing
Activity
9.8
Growing
178
13
8

Description

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.

Documentation: http://swaydb.io

Programming language: Scala
Tags: Database     Tools     Type-Safe    
Latest version: v0.10.9

SwayDB alternatives and similar packages

Based on the "Database" category

Do you think we are missing an alternative of SwayDB or a related project?

Add another 'Database' Package

README

SwayDB Slack Chat Gitter Chat Build status Maven central

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.

Features

  • 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.

Read more.

Quick start

Quick start App.

Project status

Undergoing frequent changes & beta testing. Backward binary compatibility is not yet a priority for minor releases unless it's requested.

Project support

Thank you Jetbrains for providing an open-source licence for their awesome development tools.