mambisi
escanor
Rust

High performance key value database with useful json document indexing and manipulations.

Last updated Apr 3, 2026
50
Stars
2
Forks
0
Issues
0
Stars/day
Attention Score
7
Language breakdown
Rust 100.0%
Shell 0.0%
โ–ธ Files click to expand
README

logo

Welcome to the Escanor

Escanor is a high performance database with sled as the persistence layer and implement the redis protocol with useful additions for json data manipulations. This is a side project with the vision of making it into a major project any contributors are welcome.

Features

  • High Performance
  • Non Blocking Key-Value
  • Asynchronous Server
  • Support for Json Document Manipulations
  • Works with Redis Clients and Libraries
  • Client Cli included.

Download

Download the latest release from the release page, binaries are available for Windows, Mac and Linux.

Install

Installation instructions are available in the wiki page

Commands

Supported commands: `randomkey,info,dbsize,bgsave,auth,lastsave,persist,expire,expireat,set,get,getset,del,get,ttl,geoadd,geodel,georem,georadius,georadiusbymember ,geohash,geojson,jsetr,jset,jget,jpath,jmerge,jincrby checkout the wiki page on how to use these commands WIKI PAGE

Run

<pre><code class="lang-shell">script git clone https://github.com/mambisi/escanor.git</code></pre> <pre><code class="lang-shell">script cd escanor</code></pre> <pre><code class="lang-shell">script cargo run --bin escanor-server</code></pre> <pre><code class="lang-shell">script cargo run --bin escanor-cli</code></pre>

0.1.5 Features

New cli with pretty formatted json and colored json output

logo

New Commands

  • RANDOMKEY
  • INFO
  • DBSIZE
  • AUTH
  • LASTSAVE
  • PERSIST
  • EXPIRE
  • EXPIREAT
  • GETSET
  • TTL
  • JINCRBY
  • JSETR

Changes

JSETR now set raw json <pre><code class="lang-bash">JSETR user.0 {"name" : "escanor"}` JSET is used for builder style json creation making it easier to create json form the command line

Example :

{ "name" : "escanor", "todos" : [     { "item" : "Wash",        "completed" : false     },     { "item" : "Code",        "completed" : false     }    ] }
Can dynamical be built with JSET
JSET user name "escanor" todos.+.item "Wash" todos.>.completed false todos.+.item "Code" todos.>.completed false
JSET can be used to change json even inner array
JSET user todos.1.completed true

JGET

JGET user
outputs
{ "name" : "escanor", "todos" : [     { "item" : "Wash",        "completed" : false     },     { "item" : "Code",        "completed" : true     }    ] }

JGET can be used to select specific part of a json object

JGET user todos
outputs
[   { "item" : "Wash",        "completed" : false    },    { "item" : "Code",        "completed" : true    } ]

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท mambisi/escanor ยท Updated daily from GitHub