A compact Elixir/Erlang database abstraction layer with polymorphic tuples and multiple backend support.
KVS is a database abstraction layer for Elixir and Erlang that provides a unified interface to multiple storage backends like MNESIA, FS, and ROCKSDB. It solves the problem of database interoperability by allowing developers to use polymorphic tuples and chain-based schemas without being locked into a single storage system.
Elixir and Erlang developers building applications that require flexible data storage with support for multiple backends, particularly those working on embedded systems or lightweight services.
Developers choose KVS for its extreme compactness (600 LOC), simplicity, and ability to abstract over different databases, making it easy to switch backends or maintain minimal dependencies in their projects.
KVS: xNVMe SSD Key-Value Store Abstraction Layer (SNIA)
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports multiple storage systems like MNESIA, FS, and ROCKSDB, allowing developers to abstract over and switch between backends easily, as listed in the features.
Implemented in just 600 lines of code, making it minimal and efficient for integration, which is highlighted as a key feature in the README.
Provides a straightforward interface with polymorphic tuples and chain schemas, avoiding over-engineering and keeping the codebase minimal, per the project philosophy.
Uses polymorphic tuples for flexible data structures without rigid schemas, enabling adaptable data modeling as described in the features.
Documentation is scattered across external links, some in non-English, with release notes dated up to 2019, making it difficult for new users to get started.
Only offers basic schema support and minimal features, which may not suffice for complex applications requiring advanced querying or automated migrations.
Compatible only with MNESIA, FS, and ROCKSDB, lacking support for widely-used databases like PostgreSQL or MongoDB, limiting its applicability.