typicode / steno

Super fast async file writer with atomic write ⚡
MIT License
678 stars 40 forks source link
atomic file fs race-condition-prevention safe writer

Steno Node.js CI

Super fast async file writer with atomic write

Steno makes writing concurrently fast and safe.

Battle-tested in lowdb.

Features

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     :   62ms
  steno  :    1ms

Write 1MB data to the same file x 1000
  fs     : 2300ms
  steno  :    5ms

Steno uses a smart queue and avoids unnecessary writes.

Name

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

License

MIT - Typicode