
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
Read an exact number of bytes from a binary (async) iterable
$ npm i it-reader
<script> tagLoading this module through a script tag will make it's exports available as ItReader in the global namespace.
<script src="https://unpkg.com/it-reader/dist/index.min.js"></script>
import { reader } from 'it-reader'
const stream = reader(source) // source is any iterable or async iterable
const { value, done } = await stream.next(8)
// NOTE: value is a BufferList (https://npm.im/bl)
console.log(value.toString())
// Now read 16 more bytes:
await stream.next(16)
// or...
// Consume the rest of the stream
for await (const chunk of stream) {
console.log(chunk.toString())
}
import { reader } from 'it-reader'
reader(source)Create and return a new reader.
source (Iterable) - An iterable or async iterable that yields Buffer or BufferList objects.An async iterator that yields BufferList objects.
The iterator's next method takes an optional parameter - the number of bytes to read from the source.
If the number of bytes to read are not specified, the iterator will yield any bytes remaining in the internal buffer or the next available chunk.
If the number of bytes to read exceeds the number of bytes available in the source the iterator will throw and error with a code property set to 'ERR_UNDER_READ' and a buffer property (the bytes read so far, if any), which is a BufferList instance.
Feel free to dive in! Open an issue or submit PRs.
Licensed under either of
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
FAQs
Read an exact number of bytes from a binary (async) iterable
We found that it-reader demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers 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.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.