Escanor Save

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

Project 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

git clone https://github.com/mambisi/escanor.git
cd escanor
cargo run --bin escanor-server
cargo run --bin escanor-cli

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

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
   }
]
Open Source Agenda is not affiliated with "Escanor" Project. README Source: mambisi/escanor
Stars
51
Open Issues
0
Last Commit
3 years ago
Repository
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating