No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Cannot retrieve the latest commit at this time.
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test
.gitignore
.travis.yml
LICENSE
README.md
block-iterator.js
data
example.js
index.js
package.json
read-example.js
util.js

README.md

json-sst

Newline Separated JSON, Sorted String Tables.

To be used for a leveldown clone in pure js.

Stability

Experimental: Expect the unexpected. Please provide feedback on api and you use-case

API

openSST(file, cb)

Open at SST.

createSST(file, [iterator1, iterator2,...], cb)

Create a new SST from two or more iterators. Once the table is completely written it cannot be altered.

It is not possible to alter a SST once it's written.

createIterator (opts)

Create an iterator with the same api as levelDOWN#iterator

get(key, function cb (err, value))

Retrive a value. This will probably be implemented via a binary search.

Implementation Ideas.

An SST will be persisted as sorted {key: key, value: value} json pairs, then a footer. The footer will can have meta information, such as the size of the file, and a bit of information about the keys in the SST, such as a partial table of key locations, which could be used to improve the performance of the binary search.

This could be combined with a module for a JSONLog which would have createIterator and get but also, put',batchanddelete`.

These two modules could be combined to make a simple leveldb clone in pure JS!

License

MIT