agrathwohl / random-access-idb

random-access-compatible indexedDB storage layer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

random-access-idb

random-access-compatible indexedDB storage layer

Build Status

NB: This version is a fork of @substack's original random-access-idb that implements random-access-storage abstraction. It helps normalizing every random access instances and eases rai usage in modules like random-access-network.

Substack's idb.close() function is removed from this branch as it appears to conflict with how Corestore opens and closes the RandomAccess Store, until further work can be done to gracefully handle closing state.

example

var random = require('random-access-idb')('dbname')
var cool = random('cool.txt')
cool.write(100, Buffer.from('GREETINGS'), function (err) {
  if (err) return console.error(err)
  cool.read(104, 3, function (err, buf) {
    if (err) return console.error(err)
    console.log(buf.toString()) // TIN
  })
})

api

var random = require('random-access-idb')

var db = random(dbname, opts)

Open an indexedDB database at dbname.

Any opts provided are forwarded to db(name, opts) as default options.

var file = db(name, opts)

Create a handle file from name and opts:

  • opts.size - internal chunk size to use (default 4096)

You must keep opts.size the same after you've written data. If you change the size, bad things will happen.

file.read(offset, length, cb)

Read length bytes at an offset from file as cb(err, buf).

file.write(offset, buf, cb)

Write buf to file at an offset.

install

npm install random-access-idb

license

BSD

About

random-access-compatible indexedDB storage layer

License:BSD 2-Clause "Simplified" License


Languages

Language:JavaScript 98.6%Language:HTML 1.4%