1. abstract-chunk-store
A test suite and interface you can use to implement a chunk based storage backend
abstract-chunk-store
Package: abstract-chunk-store
Created by: mafintosh
Last modified: Mon, 13 Jun 2022 02:20:18 GMT
Version: 1.5.0
License: MIT
Downloads: 65
Repository: https://github.com/mafintosh/abstract-chunk-store

Install

npm install abstract-chunk-store
yarn add abstract-chunk-store

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

Dependencies

RELATED POST

10 Must-Know Windows Shortcuts That Will Save You Time

10 Must-Know Windows Shortcuts That Will Save You Time

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Navigating AWS Networking: Essential Hacks for Smooth Operation

Navigating AWS Networking: Essential Hacks for Smooth Operation

Achieving Stunning Visuals with Unity's Global Illumination

Achieving Stunning Visuals with Unity's Global Illumination

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code