Security News
RubyGems.org Adds New Maintainer Role
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
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.
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);
}
The write-file-atomic package provides similar functionality to steno by ensuring that files are written atomically. It is designed to handle the same use cases, such as preventing file corruption during write operations. However, write-file-atomic offers more configuration options and is more widely used in the community.
The fs-extra package extends the native Node.js fs module with additional methods, including atomic write operations. While it offers a broader range of file system utilities compared to steno, it is also heavier and includes more features than just atomic writes.
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
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')
}
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.
MIT - Typicode
FAQs
Specialized fast async file writer
The npm package steno receives a total of 128,580 weekly downloads. As such, steno popularity was classified as popular.
We found that steno demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.
Security News
Research
Socket's threat research team has detected five malicious npm packages targeting Roblox developers, deploying malware to steal credentials and personal data.