Socket
Socket
Sign inDemoInstall

steno

Package Overview
Dependencies
0
Maintainers
1
Versions
24
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

steno


Version published
Weekly downloads
515K
decreased by-18.65%
Maintainers
1
Created
Weekly downloads
 

Package description

What is steno?

The steno npm package is a simple, fast, and lightweight library for writing JSON files atomically. It ensures that data is written to disk safely and without corruption, making it ideal for applications that need to frequently update JSON files.

What are steno's main functionalities?

Atomic Write

This feature allows you to write JSON data to a file atomically. The `writeFile` method ensures that the data is written safely, preventing file corruption.

const steno = require('steno');
const fs = require('fs');

const data = { key: 'value' };

steno.writeFile('data.json', JSON.stringify(data), (err) => {
  if (err) throw err;
  console.log('Data written successfully');
});

Synchronous Write

This feature allows you to write JSON data to a file synchronously. The `writeFileSync` method ensures that the data is written safely and the operation is completed before moving on to the next line of code.

const steno = require('steno');
const fs = require('fs');

const data = { key: 'value' };

try {
  steno.writeFileSync('data.json', JSON.stringify(data));
  console.log('Data written successfully');
} catch (err) {
  console.error('Error writing data:', err);
}

Other packages similar to steno

Readme

Source

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
  • Lightweight
  • 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

Write 1KB data to the same file x 1000
  fs   : 68.464ms
  steno: 0.578ms

Write 1MB data to the same file x 1000
  fs   : 2.166s
  steno: 1.153ms

License

MIT - Typicode

Keywords

FAQs

Last updated on 11 Mar 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc