Skip to content

Latest commit

 

History

History
62 lines (38 loc) · 1.92 KB

readme.md

File metadata and controls

62 lines (38 loc) · 1.92 KB

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