>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
TypeScript

如何使用 Star History 追踪开源项目增长

在为新项目选择开源库或对比备选方案时,GitHub 上的 star 数量可能具有误导性。一个有五年历史的项目获得五千个 star,与一个六个月前才上线的仓库获得五千个 star,代表着完全不同的故事。前者可能维护者已经弃坑,而后者正在经历爆发式增长,贡献者源源不断地涌入。

GitHub 本身只显示当前的 star 数量,平台默认不提供历史趋势数据。这就是为什么社区长期以来依赖 Star History——一款将原始数字转化为 popularity 可视化图表的工具。

Nvidia GTC Star History

该服务能做什么

该项目以 Web 服务的形式运行在 star-history.com,但所有源代码均以 MIT 许可证开源。你只需输入仓库名称,就能立即看到 star 随时间累积的曲线图。

以下是人们主要的使用场景:

  • xkcd 风格的漫画式图表。线条看起来略带手绘感且随性,使图表在演示和文章中极具辨识度。
  • 在单个屏幕上对比多个仓库。你可以叠加竞品的图表(例如 Vue 对比 React 和 Svelte),精确看到趋势逆转发生在何时。
  • 切换显示模式。你可以按精确日历日期查看数据,也可以按各仓库创建日期对齐的时间线来查看。
  • 可嵌入的实时 SVG 图表和徽章,适用于 README 文件。
Star History Demo

如何将图表嵌入 README

许多热门开源库的作者直接将 star 历史图表嵌入项目描述中。这样可以让访问者立即了解社区的增长速度。

这通过调用服务的 API 来实现。以下是支持深色和浅色主题的标记代码:

<a href="https://star-history.com/#your-username/your-repo&Date">
 <picture>
   <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=your-username/your-repo&type=Date&theme=dark" />
   <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=your-username/your-repo&type=Date" />
   <img alt="Star History Chart" src="https://api.star-history.com/chart?repos=your-username/your-repo&type=Date" />
 </picture>
</a>

除了图表,该服务还会生成紧凑的徽章,显示仓库的全球排名。

底层实现

该项目的代码库分为前端、浏览器扩展和后端三个部分。

前端使用 TypeScript 编写,基于 Next.js 框架,并使用 Tailwind CSS 进行样式设计。开发团队使用 pnpm 作为包管理器。

本地运行前端的方法:

cd frontend
pnpm install
pnpm dev

之后,Web 界面将在 http://localhost:3000 上可用。

对于后端部分(实时生成 SVG 图表),使用了一个独立的服务:

cd backend
pnpm install
pnpm dev

API 服务器运行在 8080 端口。

一个有趣的细节:README 中明确声明作者不接受外部 pull requests(We do not accept external contribution)。该项目由特定团队维护,因此如果你需要自定义修改,必须自行 fork 仓库。

Chrome 扩展程序

如果你不想每次都访问网站,该项目提供了 Chrome 浏览器扩展程序。

Star History Chrome Extension

它会在任意 GitHub 仓库页面上直接添加历史视图按钮。你可以用前端文件夹中的一个命令从源码构建:

cd frontend
pnpm build:ext

构建好的包将在 ./dist 文件夹中,你可以以开发者模式将其作为未打包扩展程序加载到浏览器中。

实际应用场景

在日常工作中,Star History 在四种常见场景下非常有用:

  1. 评估依赖的健康状况。Star 增速的急剧下降往往与作者弃坑或停止响应 issue 的时间点重合。
  2. 准备演讲和报告。xkcd 风格的图表是打破枯燥技术幻灯片的好方法。
  3. 发布后的营销分析。你在 Hacker News 或 Product Hunt 上发布了一个项目,想要在接下来几天内可视化地观察用户反馈。
  4. 在相似的库之间做选择。当你需要在两个功能相似的工具之间做选择时,图表能帮助你了解哪个正在获得势头,哪个在逐渐式微。

赞助商与生态

该项目得到了开源领域商业公司的积极支持,包括 Bytebase、Dify、SerpApi 和 pgplex。

Bytebase

Dify

SerpApi

pgplex

Star History 解决了一个特定问题,没有不必要的复杂性。服务运行速度快,只需点击几下就能导出图片,并能轻松集成到文档中。

如果你维护着一个公开仓库,或经常分析他人的代码,请将这个网站加入书签或安装浏览器扩展。这将在评估开源库时节省时间,并帮助你追踪自己项目的增长率。

相关项目