All Projects → simerplaha → Swaydb

simerplaha / Swaydb

Licence: other
Non-blocking persistent & in-memory key-value storage engine for JVM.

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to Swaydb

Faster
Fast persistent recoverable log and key-value store + cache, in C# and C++.
Stars: ✭ 4,846 (+2092.76%)
Mutual labels:  key-value-store, persistent
Sharedhashfile
Share Hash Tables With Stable Key Hints Stored In Memory Mapped Files Between Arbitrary Processes
Stars: ✭ 380 (+71.95%)
Mutual labels:  key-value-store, in-memory
dxram
A distributed in-memory key-value storage for billions of small objects.
Stars: ✭ 25 (-88.69%)
Mutual labels:  in-memory, key-value-store
Olric
Distributed cache and in-memory key/value data store. It can be used both as an embedded Go library and as a language-independent service.
Stars: ✭ 2,067 (+835.29%)
Mutual labels:  key-value-store, in-memory
Geminigraph
A computation-centric distributed graph processing system.
Stars: ✭ 196 (-11.31%)
Mutual labels:  in-memory
Opq
A simple, in-memory queue with worker pooling and rate limiting in Elixir.
Stars: ✭ 178 (-19.46%)
Mutual labels:  in-memory
Client Rust
Rust Client for TiKV.
Stars: ✭ 175 (-20.81%)
Mutual labels:  key-value-store
Unifrost
Making it easier to push pubsub events directly to the browser.
Stars: ✭ 166 (-24.89%)
Mutual labels:  in-memory
Nstack
Type-safe, composable microservices for data analytics
Stars: ✭ 219 (-0.9%)
Mutual labels:  type-safe
Mongo Java Server
Fake implementation of MongoDB in Java that speaks the wire protocol.
Stars: ✭ 211 (-4.52%)
Mutual labels:  in-memory
C Macro Collections
Easy to use, header only, macro generated, generic and type-safe Data Structures in C
Stars: ✭ 192 (-13.12%)
Mutual labels:  type-safe
Video Downloader Deploy
Video Downloaders (you-get, youtube-dl, annie) One-Click Deployment Batch. || 视频下载器 (you-get, youtube-dl, annie) 一键配置脚本。
Stars: ✭ 178 (-19.46%)
Mutual labels:  embeddable
Gluon
A static, type inferred and embeddable language written in Rust.
Stars: ✭ 2,457 (+1011.76%)
Mutual labels:  embeddable
Fable.remoting
Type-safe communication layer (RPC-style) for F# featuring Fable and .NET Apps
Stars: ✭ 175 (-20.81%)
Mutual labels:  type-safe
Hydux
A light-weight type-safe Elm-like alternative for Redux ecosystem, inspired by hyperapp and Elmish
Stars: ✭ 216 (-2.26%)
Mutual labels:  type-safe
Lucid
High performance and distributed KV store w/ REST API. 🦀
Stars: ✭ 171 (-22.62%)
Mutual labels:  key-value-store
Jpa Hibernate Tutorials
Hibernate Tutorials with Spring Boot and Spring-Data-JPA
Stars: ✭ 186 (-15.84%)
Mutual labels:  embeddable
Iowow
The skiplist based persistent key/value storage engine
Stars: ✭ 206 (-6.79%)
Mutual labels:  key-value-store
Swiftdb
A modern database abstraction layer, batteries included.
Stars: ✭ 183 (-17.19%)
Mutual labels:  type-safe
Dao
Dao Programming Language
Stars: ✭ 183 (-17.19%)
Mutual labels:  embeddable

SwayDB Slack Chat Gitter Chat Build status Maven central

Non-blocking persistent and in-memory key-value storage engine for the JVM with no external core dependencies (#307).

Small footprint: around 7.1 MB jar size.

Status: Under testing & performance optimisations. See project status.

Documentation

Overview

  • Simple data types - Map, Set, Queue, SetMap & MultiMap with native Java and Scala collections support.
  • Conditional updates using any pure JVM function - No query language.
  • Atomic updates and inserts with Transaction API.
  • Non-blocking core with configurable APIs for blocking, non-blocking and/or reactive use-cases.
  • Single or multiple disks persistent, in-memory or eventually persistent.
  • Streams - Asnc & sync forward and reverse data streaming/iteration.
  • TTL - non-blocking, non-polling asynchronous auto expiring key-values.
  • Range operations to update, remove & expire a range of key-values.
  • Key only iterations (Lazily fetched values).
  • Configurable compression with LZ4 & Snappy
  • Configurable core internals to support custom workloads.
  • Duplicate values elimination with compressDuplicateValues.

Use cases

Highly configurable to suit different workloads. Some known use-cases are:

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

Quick start

Contributing

Contributions are encouraged and welcomed. We are here to help and answer any questions.

Code of conduct - Be nice, welcoming, friendly & supportive of each other. Follow the Apache foundation's COC.

  • Contributing to data management API

    • Build new data structures extending existing data structures. See MultiMap for example which is an extension of Map.
      • Graph
      • List
      • Geospatial
      • Logs
      • Observables
      • Full-text search
      • etc
    • Add support for external serialising, streaming & compression libraries.
    • Test and improve existing data structures.
  • Contributing to core API

  • Contributing to core internals

    • See code marked TODO.
    • Pick any small section to improve. You will find that everything is a function and can be unit-tested independently, so you can easily pick anything to work on.

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 testing & performance optimisations. Future releases might not be backward compatible until we are production ready.

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

Related GitHub projects

Sponsors

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

Jetbrains support

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].