npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

nv-string-utf8buf-foreach

v1.0.1

Published

- for each codepoint directly on utf8-buf

Readme

nv-string-utf8buf-foreach

  • for each codepoint directly on utf8-buf

  • 速度:比 Node.js 标准的 Buffer.toString() -> for...of 遍历快 2.68倍
  • 零内存分配:直接在 Uint8Array 上进行位运算提取码点,避免了大字符串对象产生的 GC 压力。
  • 流式支持:内置跨 Chunk 补偿逻辑,完美处理被切断的多字节字符(Emoji/中文)。

📊 性能基准测试 (Performance Battle)

基于 10.00 MB 的混合文本 Buffer,在 Node.js 1000 轮测试下的对比结果:

| 方法 | 平均耗时 (Avg) | 最佳耗时 (Best) | | :--- | :--- | :--- | | Node Standard (toString + for-of) | 107.10 ms | 84.60 ms | | Mach Direct (for_each_cpt) | 33.88 ms | 31.52 ms |

📦 安装与使用

const for_each_cpt = require("nv-string-utf8buf-foreach");

let remainder = null; // 用于存储跨 chunk 的残余字节
// 模拟流式输入
function onData(chunk) {
    remainder = for_each_cpt(chunk, (cpt) => {
        console.log("解析出码点:", cpt);
        // 在此处驱动你的状态机
    }, remainder);
}


const str = u8a.toString('utf8');
for (let char of str) {
    const cpt = char.codePointAt(0);
    // 在此处驱动你的状态机
}