five

LangPulse

收藏
github2026-05-06 更新2026-05-07 收录
下载链接:
https://github.com/doraemonkeys/LangPulse
下载链接
链接失效反馈
官方服务:
资源简介:
LangPulse发布每日UTC日快照,统计每种编程语言中最近活跃的公共GitHub仓库数量,按星标数阈值分类。

LangPulse publishes daily UTC-aligned snapshots that enumerate the number of recently active public GitHub repositories for each programming language, categorized by star count thresholds.
创建时间:
2026-04-07
原始信息汇总

数据集名称

LangPulse

核心数据内容

LangPulse 每日发布一个 UTC 日快照,统计过去30天内活跃的公共 GitHub 仓库数量,并按编程语言和星标数量阈值进行细分。

数据衡量标准

对于每个 UTC 日期 D、每种活跃语言 L 和每个活跃星标阈值 T,数据集存储一个整数,该整数对应于以下 GitHub 仓库搜索查询的返回结果:

language:"<L>" is:public pushed:>=D-29 stars:>=T

具体说明:

  • 时间窗口:始终为30天,包含观察日期 (D-29 .. D)。
  • 活跃定义pushed:>= 反映任何分支上的任何推送活动,是“仓库近期有人类活动”的代理指标,而非直接的质量信号。
  • 星标阈值threshold = 0 会完全去掉 stars: 限定符,因此计算该语言中所有最近推送过的公共仓库。
  • 语言分类:使用 GitHub 自身的 Linguist 分类,而非文件扩展名。
  • 查询拼写config/metrics.json 中的 github_query_fragment 是每种语言查询拼写的权威来源。同一语言的不同拼写需要两个不同的 language.id

数据集架构

┌──────────────┐ HTTP + Bearer ┌────────────────────┐ │ collector/ │ ───────────────────────▶│ worker/ (CF) │ │ Go, daily │ /internal/quality-* │ D1: runs, rows, │ │ via Actions │ │ publications │ └──────┬───────┘ └─────────┬──────────┘ │ GitHub Search API │ same-origin ▼ ▼ ┌──────────────┐ ┌────────────────────┐ │ GitHub │ │ web/ (React) │ │ │ │ static assets │ └──────────────┘ └────────────────────┘

  • 收集器 (collector/):Go 语言编写,通过 GitHub Actions 每日在 00:15 UTC 运行。它在共享速率限制器下并行查询 GitHub Search,并将整个结果集以原子批次提交给 Worker 的内部摄取端点。
  • 工作者 (worker/):单个 Cloudflare Worker,提供公共 API 和静态前端。
  • 前端 (web/):React 19 + @tanstack/react-query 仪表盘。

数据模型

数据存储在 Cloudflare D1 中,包含三张表(完整架构见 migrations/0001_init.sql):

  • quality_30d_runs:每一次采集尝试,包含状态 (running, failed, expired, complete)、租约记账以及 (observed_date, attempt_no) 唯一约束。
  • quality_30d_run_rows:每个 (run_id, language_id, threshold_value) 对应一个整数值。
  • quality_30d_publications:从 observed_date 到成功 run_id 的不可变指针。公共读取始终通过此表连接,因此失败或过期的尝试对外不可见,但保留用于审计。

公共 API

所有端点通过已部署的 Worker 同源提供。响应格式为 JSON,日期为 UTC YYYY-MM-DD

方法 路径 用途
GET /api/health 检测 D1 连接,按客户端 IP 限速。
GET /api/metadata 注册表投影:活跃语言、阈值、启动日期、窗口天数。
GET /api/quality/latest 返回 { observed_date } 最近发布快照的日期,或 null
GET /api/quality/snapshot?date=YYYY-MM-DD&threshold=N 返回指定日期+阈值的语言排名计数,以及上一个发布日期的计数,用于前端展示变化。
GET /api/quality/compare?languages=a,b,c&threshold=N&from=...&to=... 返回少量语言在指定日期范围内的时间序列计数。
搜集汇总
数据集介绍
main_image_url
构建方式
LangPulse数据集的构建依托于GitHub生态,每日于UTC时间00:15通过GitHub Actions触发数据采集流程。其核心组件collector以Go语言编写,利用GitHub Search API并发查询,并在共享速率限制器的调控下,针对每个编程语言及星级阈值组合,检索近30天内存在推送活动的公开仓库数量。查询结果以原子批次形式,经由内部ingest端点,统一上传至Cloudflare Worker。Worker负责接收数据、执行批量更新,并将最终快照发布至quality_30d_publications表,从而确保每日数据集的一致性与可靠性。
特点
该数据集的核心特色在于其精细化的时间窗口与星级阈值分层设计。它并非简单统计语言仓库总数,而是通过30天滚动窗口捕捉近期活跃度,以推送事件作为人工介入的代理指标。同时,通过设定0星、高星等多个阈值,区分不同影响力级别的仓库,从而刻画各语言社区的生态活力。数据基于GitHub Linguist进行语言分类,确保语义一致性。此外,平台还提供历史快照比对与时间序列分析,支持开发者追踪语言流行度的动态演进。
使用方法
LangPulse通过部署于Cloudflare Worker的公共API提供数据访问,所有端点均返回JSON格式,日期采用UTC标准。用户可通过GET请求获取最新快照日期、指定日期与阈值下的语言排名快照,或基于多个语言与时间窗口的对比趋势数据。此外,项目提供React前端仪表板,可直接可视化查询结果。对于需要深入分析的场景,可直接读取底层D1数据库中的quality_30d_publications表,或利用GitHub Actions工作流实现定制化数据拉取与集成。
背景与挑战
背景概述
LangPulse数据集诞生于2024年,由独立开发者维护并依托GitHub Actions与Cloudflare Worker构建。该数据集的核心研究问题在于量化各编程语言在公共GitHub仓库中的活跃度,通过每日UTC快照记录在过去30天内有过推送活动的仓库数量,并依据星标数阈值进行分层统计。不同于依赖文件扩展名的传统指标,LangPulse采用GitHub Linguist语言分类引擎,确保了语言归属的权威性与一致性。这一设计使得研究者与开发者能够动态追踪开源生态中不同语言的活力演变,例如评估新兴语言的采纳趋势或经典语言的持续影响力。作为开源生态系统监测的基础设施,LangPulse填补了长期、细粒度语言活跃度数据的空白,为技术栈决策、社区健康分析乃至学术研究提供了可复现的定量依据。
当前挑战
LangPulse所面临的挑战兼具领域问题与工程复杂性。从领域问题来看,其核心是解决如何在不准确依赖星标数或提交次数的前提下,定义并测量编程语言的‘真实活跃度’。传统指标如星标数易受短期营销或社区活动干扰,而推送活动虽能反映实际维护,却无法区分核心开发与自动化脚本更新。构建过程中则遭遇多重工程难题:GitHub Search API的速率限制要求精心设计并发查询与退避策略;跨语言查询需处理Linguist分类歧义(如同一语言存在多种命名),迫使数据集引入严格的语言ID契约;数据一致性上,需通过分布式架构协调每日原子性快照与增量发布,避免因API故障或节点失效导致部分数据缺失。此外,如何在不引入偏见的前提下选择星标阈值(0作为基准线),以及公开API的响应延迟优化,均对数据集的可用性与公平性构成持续考验。
常用场景
经典使用场景
在开源生态与软件工程领域,LangPulse数据集广泛用于编程语言活跃度的时序分析与趋势预测。研究者常借助该数据集回溯不同语言在特定时间段内的仓库活跃数量与星标分布,以洞察语言生态的动态演化。例如,通过对比不同星标阈值下的活跃仓库数,可以揭示新兴语言的采纳速度、主流语言的衰退迹象,以及社区参与度的结构性变化。该数据集以其每日更新的频率和细粒度的阈值划分,成为语言流行度研究中不可或缺的量化工具。
衍生相关工作
基于LangPulse数据集,衍生了一系列经典工作。例如,社区分析论文利用其时序活跃度曲线构建语言流行度预测模型,验证了仓库推送频率与星标密度在技术采纳S曲线中的先行指示作用。另有研究结合LangPulse与GitHub Archive数据,分析语言切换模式与贡献者流动性。在实践中,多个开发者工具项目将LangPulse的活跃度排名集成至插件市场,帮助用户在语言切换时参考实时生态热度。这些衍生工作共同构筑了以活跃度为核心的新一代开源度量体系。
数据集最近研究
最新研究方向
面向编程语言生态动态追踪的准实时数据基准研究
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作