Thanks to visit codestin.com
Credit goes to github.com

Skip to content
/ steno Public
forked from typicode/steno

Super fast async file writer with atomic write ⚡

License

rodnye/steno

 
 

Repository files navigation

steno-js

This is a commonjs module for [email protected]. Has been refactored so that it can be used NOT only by ESM code.

Steno Node.js CI

Super fast async file writer with atomic write

Steno makes writing concurrently fast and safe.

Battle-tested in lowdb.

Features

  • ⚡ Fast (see benchmark)
  • 🐦 Lightweight (~6kb)
  • 🩵 Written in TypeScript
  • 🖊️ Writes are atomic (no partial writes)
  • 🏎️ Writes are ordered even if they're async (no race conditions)
  • ♻️ Automatic retry

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

About

Super fast async file writer with atomic write ⚡

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%