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.
-
High Performance
-
Non Blocking Key-Value
-
Asynchronous Server
-
Support for Json Document Manipulations
-
Works with Redis Clients and Libraries
-
Client Cli included.
Download the latest release from the release page, binaries are available for Windows, Mac and Linux.
Installation instructions are available in the wiki page
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
git clone https://github.com/mambisi/escanor.gitcd escanorcargo run --bin escanor-servercargo run --bin escanor-cliNew cli with pretty formatted json and colored json output
- RANDOMKEY
- INFO
- DBSIZE
- AUTH
- LASTSAVE
- PERSIST
- EXPIRE
- EXPIREAT
- GETSET
- TTL
- JINCRBY
- JSETR
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 falseJSET can be used to change json even inner array
JSET user todos.1.completed trueJGET
JGET useroutputs
{
"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 todosoutputs
[
{ "item" : "Wash",
"completed" : false
},
{ "item" : "Code",
"completed" : true
}
]
