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

grf-cli

v2.0.2

Published

Rust-first CLI distribution for Git reference repositories, with npm only handling installation and upgrades.

Readme

grf-cli

English | 简体中文

grf-cli 正在重构为 Rust 原生 CLI。Node 不再承载运行时业务逻辑,npm 包只负责安装、升级和启动本地原生二进制。

当前状态

  • 旧的 TypeScript 实现已经移除。
  • Cargo 工程已经成为主运行时入口。
  • 当前 Rust CLI 已具备这些命令:
    • grf add
    • grf clean
    • grf list
    • grf load
    • grf unload
    • grf update
  • 旧的 config 命令已经移除。
  • Rust 重写版本不再自动兼容或迁移旧版磁盘状态格式。
  • 仓库已经具备正式发布闭环:
    • Rust 多平台构建
    • 当前 GitHub 仓库 Release 资产上传
    • npm 安装器包发布

安装

全局安装

pnpm add -g grf-cli

升级并更新可执行文件

pnpm update -g grf-cli

安装阶段的 postinstall 会按当前 npm 包版本下载当前 GitHub 仓库对应 release tag 下的原生二进制,并原地替换旧版本可执行文件。

本地开发

pnpm install --ignore-scripts
cargo build --release
cargo run -- --help
pnpm run check

当安装器检测到当前目录是仓库工作区时,npm 启动器会优先使用 target/release/target/debug/ 中本地构建出来的 Rust 二进制。

发布流程

正式版本发布现在拆成两个工作流:

  • publish.yml:负责版本校验、 多平台原生构建和 GitHub Release 资产发布
  • npm-publish.yml:在前一个工作流 成功完成后,自动发布 npm 安装器包

触发方式:

push tag: vX.Y.Z

流水线步骤:

  1. 校验 package.jsonCargo.toml 的版本一致。
  2. 为配置的平台目标构建 grf
  3. 发布到当前 GitHub 仓库的 release。
  4. 上传原生二进制作为 release 资产。
  5. 第一个工作流成功后,自动触发 npm 发布工作流。
  6. 从当前 tag 对应的代码发布 npm 安装器包。

工作流需要的仓库密钥:

  • NPM_TOKEN

Release 上传使用当前仓库内建的 GITHUB_TOKEN。 如果 npm 发布开启了 2FA 保护,那么 NPM_TOKEN 必须具备发布时绕过 2FA 的能力,否则需要改成 npm Trusted Publishing。

npm 安装器职责

发布后的 npm 包只保留三件事:

  • grfgit-rfgitref 创建命令入口
  • postinstall 时下载匹配版本的原生二进制
  • npm update / pnpm update 后再次替换这个二进制

如果在正式发布前需要测试不同版本号下载,可以使用这些环境变量覆盖:

  • GRF_RELEASE_TAG
  • GRF_INSTALL_LINUX_LIBCgnumusl

License

MIT