JSPM

@commonify/steno

2.1.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 666
  • Score
    100M100P100Q114489F
  • License MIT

CommonJS version of steno 2.1.0. See https://github.com/mifi/commonify

Package Exports

  • @commonify/steno
  • @commonify/steno/lib/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@commonify/steno) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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