Diskette
Diskette is a virtual file format that allows for efficient in-memory reads and writes. Files can be constructed from any buffer or string and they are fully streamable. As a consequence, any buffer or string can be streamed as if it was a regular file.
let diskette = require('diskette')
let file = new diskette.File({
blockLength: 20
})
file.append('yo bruh\n')
file.append('i heard you like files\n')
file.write(4, 'dude')
let rest = new File('so i made files in memory that can be piped to just about anything\n')
let out = new diskette.WritableFileStream(file)
let restStream = new diskette.ReadableFileStream(rest)
restStream.pipe(out)
restStream.on('end', () => {
file.append('hope you like it')
})
let s = new diskette.ReadableFileStream(file)
s.pipe(process.stdout)
yo dude
i heard you like files
so i made files in memory that can be piped to just about anything
hope you like it
API
File
new File([content][, options])
Create a new file which has its contents stored in-memory, optionally filled with content
, and with one of the following options:
- blockLength: the size of one block
Note: content
can be omitted.
file.write(position, bufferOrString[, bufferStart][, bufferEnd])
Writes the content of buffer between the given indices to the given position. If no indices are provided, the enitre content of the buffer is written to file.
file.append(bufferOrString[, bufferStart][, bufferEnd])
Just like file.write
, except that it appends data to the end of the file.
file.read(position, buffer, bufferStart, bufferEnd)
Reads content of file starting at the given position to the given buffer, optionally limited by two indices denoting the start and the end position of the buffer.
ReadableFileStream
new ReadableFileStream(file[, options])
Constructs a new readable stream of which data of file can be read.
- chunkSize: how much data to stream in one cycle. Use
-1
to make the chunk as large as possible (possibly the enitre file content). Defaults to -1
. - startPosition: an offset in the file to start reading from. Defaults to
0
.
WritableFileStream
new WritableFileStream(file[, options])
Constructs a new writable stream that writes data to file starting at the given position. The options are:
Similar projects