Release: EDMA v0.1.0 - An embedded database management tool

EDMA v0.1.0 beta version has been released!

What is EDMA?

EDMA: Embedded Database Management for All is an open source project made to manage embedded key-value storages. EDMA is a TUI (Terminal User Interface) that is easy to install and configure. It allows engineer to traverse the embedded database and deserialize byte data with provided byte layout. This enhances the experience of working with low level database system like RocksDB or Redb.

Features

  • Multi embedded database supported: RocksDB, Redb
  • Cross-platform supported: Windows, Linux and MacOS
  • Custom byte layout deserialization
  • Execute database command directly in terminal
  • Interactive terminal interface with keyboard only control
  • Iterate key-value pairs from column family and table

Installation

cargo install --version 0.1.0-beta.3 edma

Tribute

Thanks to gobang, spotify-ui and tui-rs for helpful source code and resources

Description

  • Support PREFIX and SUFFIX command
  • Prefix and suffix iteration only works for key traversal not value traversal

How does it work?

For example, you have a pair mock key - mock value in a database

  • PREFIX=mock would return that data
  • PREFIX=hello would not return
  • SUFFIX=key would return that data
  • SUFFIX=value would not (value traversal is not supported yet)

Additional Context

Prefix iteration

Screen Shot 2022-12-13 at 10 12 45

Suffix iteration

Screen Shot 2022-12-13 at 10 12 25

Release EDMA v0.1.0-beta.5: Add sled support

Changelog

  • Migrate from fixed column family design to TagBucket datastructure
  • Allows more databases to be integrated into EDMA using TagBucket
  • Supported tags: tree (for Sled), column_family (for RocksDB)
  • Add Sled integration: Allows iterate and view database item stored globally and stored in a tree using command TREE=<tree_name_goes_here>

New Features

Check the latest version of EDMA: https://crates.io/crates/edma

Support sled database (request in this PR: Sled support · Issue #8 · nomadiz/edma · GitHub).sled database is one of the most popular databases in Rust ecosystem. sled is a high-performance embedded database with an API that is similar to a BTreeMap<[u8], [u8]>, but with several additional capabilities for assisting creators of stateful systems.

It is fully thread-safe, and all operations are atomic. Multiple Trees with isolated keyspaces are supported with the Db::open_tree method.

This integration allows developer to view data stored globally or in isolated keyspaces (tree) in sled using EDMA.

ezgif-1-c1fc0c3e29

How to use sled with EDMA?

With a simple additional line in your current JSON configuration file. sled is fully embedded.

{
  "databases": [
    // ...other databases
+  {
+    "name": "sled",
+    "path": "../temp/cf"
+  },
  ],
  "templates": [
	// ...other templates
  ]
}