Popularity
4.3
Growing
Activity
9.8
Declining
189
14
12

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

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

Fast embeddable persistent and in-memory key-value storage engine that provides storage as simple data structures - Map, Set & Queue.

Conditional updates/data modifications can be performed by simply submitting any Java, Scala, Kotlin or any native JVM code.

SwayDB's configurations can be tuned for various workloads. Some use-cases are:

  • General key-value storage
  • Message queues
  • Time-series or Events data
  • Archiving data or cold storage with high file level compression

See comparable benchmarks with RocksDB or QuickStart in Java, Scala or Kotlin.

Documentation | License summary | Project status

Performance

Storage type Performance
Persistent up to 863,000 reads/sec & 482,000 writes/sec
Memory TODO

Overview

Read more.

Quick start

Project status

Your feedback and review is very important to get to production. Please get involved via chat, issues or email which is on my profile.

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

See tasks labelled Production release that are required before becoming production ready.

Contribution

Contributions are welcomed following the Scala code of conduct.

License summary

I don't want to restrict SwayDB's usage in any way and would like to see others find SwayDB useful in their own projects, companies and other open-source projects for both personal or commercial reasons, the license only asks for your modifications (e.g bug-fixes) to SwayDB's source code to be shared so that SwayDB remains a free software and supports the contributors by not duplicating efforts. You do not have to share your program's code or are bounded by AGPLv3 as long as you share your modifications.

If you have any questions or think that the current license restricts you in any way please contact me.

The language in the LICENSE file follows GNU's FAQ so that it is correct in legal terms.

Sponsors

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


*Note that all licence references and agreements mentioned in the SwayDB README section above are relevant to that project's source code only.