National Party Month

    abstract-chunk-store

    1.5.0 • Public • Published

    abstract-chunk-store npm downloads

    A test suite and interface you can use to implement a chunk based storage backend

    abstract chunk store

    Install

    npm install abstract-chunk-store
    

    Some modules that use this

    Send a PR adding yours if you write a new one.

    API

    chunkStore = new ChunkStore(chunkLength)

    Create a new chunk store. Chunks must have a length of chunkLength.

    chunkStore.put(index, chunkBuffer, [cb])

    Add a new chunk to the storage. Index should be an integer.

    chunkStore.get(index, [options], cb)

    Retrieve a chunk stored. Index should be an integer. Options include:

    {
      offset: chunkByteOffset,
      length: byteLength
    }

    If the index doesn't exist in the storage an error should be returned.

    chunkStore.close([cb])

    Close the underlying resource, e.g. if the store is backed by a file, this would close the file descriptor.

    chunkStore.destroy([cb])

    Destroy the file data, e.g. if the store is backed by a file, this would delete the file from the filesystem.

    chunkStore.chunkLength

    Expose the chunk length from the constructor so that code that receives a chunk store can know what size of chunks to write.

    Test Suite

    Publishing a test suite as a module lets multiple modules all ensure compatibility since they use the same test suite.

    To use the test suite from this module you can require('abstract-chunk-store/tests').

    An example of this can be found in the memory-chunk-store test suite.

    To run the tests simply pass your test module (tap or tape or any other compatible modules are supported) and your store's constructor (or a setup function) in:

    var tests = require('abstract-chunk-store/tests')
    tests(require('tape'), require('your-custom-chunk-store'))

    Badge

    If you make a new module that uses the abstract-chunk-store API, include this badge in your readme!

    abstract chunk store

    [![abstract chunk store](https://cdn.rawgit.com/mafintosh/abstract-chunk-store/master/badge.svg)](https://github.com/mafintosh/abstract-chunk-store)

    Background

    An abstract chunk store is a binary data store that allows you to interact with individual chunks of a larger blob (a.k.a. binary file). A chunk can be thought of as a small partial blob that fits in memory.

    Related:

    License

    MIT

    Keywords

    none

    Install

    npm i abstract-chunk-store

    DownloadsWeekly Downloads

    11

    Version

    1.5.0

    License

    MIT

    Unpacked Size

    12 kB

    Total Files

    4

    Last publish

    Collaborators

    • mafintosh
    • feross
    • jhiesey