kv-stream
super simple key-value store, intended for keeping appendable files.
works on the server, with files or redis and in the browser with localStorage
.
on the server, it keeps the files in prefixed subdirectories, so that the directories do not get too large.
(see ls .git/objects/* for a similar example)
examples
create an instance
kv(path/prefix/connectString, setup)
path
is where to create/connect to the store.
setup
is optional. setup
is passed the stream created by put
and get
, may replace the stream passed to put/get
by default, the stream is handled as newline seperated json.
//files
var kv = require('kv')('/tmp/kv')
//redis
var kv = require('kv/redis')('redis://password@localhost:6379/prefix')
//client
var kv = require('kv')('kv:') //this will be prefixed to keys when saving in localStorage.
put a stream
opts
is optional. see fs.createWriteStream
stream
kv.createWriteStream
is a synonym for kv.put
get a stream
opts
is optional. see fs.createReadStream
kv
kv.createReadStream
is a synonym for kv.get
del a stream
kv
list of keys
kv
has
check if db has a key
kv
customization
to handle other types of streams than newline separated json, pass in a stream setup function to kv.
var rawKV = dir {return stream //just use raw streams, do not parse!}
cli
there is also a cli tool!
npm install kv -g
echo hello | kv put hello --base /tmp/kv
kv get hello --base /tmp/k