steno-js
v0.0.1
Published
Specialized fast async file writer
Downloads
16
Maintainers
Readme
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
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