@commonify/steno

v2.1.0
CommonJS version of steno 2.1.0. See https://github.com/mifi/commonify
fs file write writer asynchronous fast race condition atomic and 3 more...

Steno Node.js CI

Specialized fast async file writer

Steno makes writing to the same file often/concurrently fast and safe.

Used in lowdb.

https://en.wikipedia.org/wiki/Stenotype

Features

  • Fast (see benchmark)
  • Lightweight (~6kb)
  • Promise-based
  • Atomic write
  • No race condition
  • TypeScript definitions

Usage

import { Writer } from 'steno'

// Create a singleton writer
const file = new Writer('file.txt')

// Use it in the rest of your code
async function save() {
  await file.write('some data')
}

Benchmark

npm run benchmark (see src/benchmark.ts)

Write 1KB data to the same file x 1000

  fs     : 62.303ms
  steno  : 1.384ms

  fs.txt = steno.txt ✓


Write 1MB data to the same file x 1000

  fs     : 2.300s
  steno  : 5.444ms

  fs.txt = steno.txt ✓

License

MIT - Typicode

npm i @commonify/steno

Metadata

  • MIT
  • ^14.13.1 || >=16.0.0
  • Typicode
  • released 1/24/2022

Downloads

Maintainers