# level/levelup

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/level-levelup).**

4,072 stars · 265 forks · JavaScript · MIT · archived

## Links

- GitHub: https://github.com/Level/levelup
- awesome-repositories: https://awesome-repositories.com/repository/level-levelup.md

## Topics

`browser` `javascript` `level` `leveldb` `nodejs`

## Description

Levelup is a sorted key-value storage system that saves and retrieves data using byte arrays as keys and values. It provides a compatibility layer for Node.js and browsers that offers a unified interface for storage backends compliant with a specific abstract standard.

The project features an atomic batch write engine to execute multiple write and delete operations as a single unit for data consistency. It includes a range-based data streamer for reading keys and values as continuous sequences and an event-driven storage monitor to track asynchronous updates and state changes.

The system covers broader database primitives including range-based data deletion and backend engine abstraction to maintain a consistent command set across different runtime environments.

## Tags

### Data & Databases

- [Key-Value](https://awesome-repositories.com/f/data-databases/storage-engines/key-value.md) — Provides a high-performance key-value storage system that uses raw byte arrays for platform-independent data retrieval.
- [Database Atomic Batches](https://awesome-repositories.com/f/data-databases/bulk-data-operations/atomic-batch-operations/database-atomic-batches.md) — Implements a mechanism to group multiple write and delete operations into a single atomic operation for data consistency.
- [LSM-Tree Batch Writes](https://awesome-repositories.com/f/data-databases/bulk-data-operations/atomic-batch-operations/database-atomic-batches/lsm-tree-batch-writes.md) — Groups multiple mutations into a single atomic commit to ensure data consistency and reduce write amplification.
- [Cursor-Based Iteration](https://awesome-repositories.com/f/data-databases/cursor-based-iteration.md) — Implements a cursor mechanism for traversing sorted data sequences with support for bidirectional movement and pagination.
- [Lexicographical Range Reads](https://awesome-repositories.com/f/data-databases/custom-key-ordering/lexicographical-sorting/lexicographical-range-reads.md) — Allows the retrieval of all keys and values within a specific byte-sorted range using streaming and limits.
- [Atomic Transactions](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/connection-transaction-management/atomic-transactions.md) — Executes multiple data manipulation operations as a single atomic unit to ensure consistency.
- [Backend Compatibility Layers](https://awesome-repositories.com/f/data-databases/key-value-stores/backend-compatibility-layers.md) — Provides a compatibility layer for Node.js and browsers to interface with abstract-leveldown compliant backends.
- [Sorted](https://awesome-repositories.com/f/data-databases/key-value-stores/sorted.md) — Enables the reading of keys and values as continuous sequences via range bounds and result limits. ([source](https://github.com/level/levelup#readme))
- [Sorted Key-Value Maps](https://awesome-repositories.com/f/data-databases/sorted-key-value-maps.md) — Provides a key-value store that maintains entries sorted by key to enable efficient range queries.
- [Storage Abstraction](https://awesome-repositories.com/f/data-databases/storage-abstraction.md) — Offers a middleware layer that provides a unified interface for interacting with different underlying storage backends.
- [Storage Backend Adapters](https://awesome-repositories.com/f/data-databases/storage-backend-adapters.md) — Provides an interface to interact with diverse storage engines using a consistent set of commands. ([source](https://github.com/level/levelup#readme))
- [Range Deletions](https://awesome-repositories.com/f/data-databases/key-value-stores/key-deletion/range-deletions.md) — Allows the removal of specific data segments by defining upper and lower key boundaries.
- [Storage Event Notifications](https://awesome-repositories.com/f/data-databases/storage-event-notifications.md) — Ships an event-driven monitor to track asynchronous updates and state changes within the data store.

### Software Engineering & Architecture

- [Storage Backend Adapters](https://awesome-repositories.com/f/software-engineering-architecture/storage-backend-adapters.md) — Provides a unified interface that translates consistent commands into specific API calls for different storage backends.
- [Store Event Listeners](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/state-management/state-logic-and-utilities/functional-state-management/state-functionality-extenders/store-event-listeners.md) — Implements a notification system using event listeners to react to asynchronous updates and state changes in the store.

### Part of an Awesome List

- [Database Drivers](https://awesome-repositories.com/f/awesome-lists/data/database-drivers.md) — LevelDB interface.
- [Databases](https://awesome-repositories.com/f/awesome-lists/data/databases.md) — LevelDB client.
