croft 推荐,一个 DuckDB 文件装下的 TypeScript 数据管道

个人和小团队搭数据管道,面前的选项长期两极,重武器要养 Airflow 加仓库,轻办法只剩手写脚本加人肉调度。十月十八日上榜的 croft 给了个中间形态,用 TypeScript 写管道,全部数据落在一个 DuckDB 文件里。数据管道这词听着企业味重,个人攒一份自己的数据账本,同样是管道。我核了官方文档、GitHub 仓库与 npm 包信息,这个产品的边界划得异常清醒。

主要功能

整个工具就是一个命令行程序。上手就是 init。项目就是一个资源文件夹,每个 TS 或 SQL 文件对应一张表,执行 croft run 按依赖顺序把表全部更新。取数用 ingest 函数,从任意接口或 CSV 增量拉,跑挂了重跑不出错。加工用 SQL 写或 TS 的 transform 函数,保存前先过检查,脏数据进不了表,下游报表的坑在上游就填了。调度不用学表达式,自然语言写每小时或每天早上八点,背后还是定时器那套,只是写法换了人话。下游读取走 read 包,按表名生成类型安全的查询接口。所有数据躺在本地一个 DuckDB 文件里,备份就是复制文件。一个文件。复制即备份。没有账号,没有服务器,官网口号直接写没有云要付费。

类型与安全设计

差异化最狠的一处是类型。每次运行后按真实数据列生成 TS 类型,SQL 里改了列名,读取代码里还在用旧列名的,下次运行前就被 validate 命令拦下,错误码稳定还附修复建议,错误码稳定这条对自动化是宝藏,代理读码改码,重试逻辑写起来不用猜,从 Python 迁过来的数据人会懂,类型这关从负担变成了保镖。数据安全也做了一整套,写入全有或全无,进程被强杀不留半写状态,删除进回收站可 restore,破坏性操作统一收敛到 confirm 命令人工放行,confirm 那道门挡的就是代理误操作,人与 AI 都得过安检,另有沙箱预览与热备命令。对编码代理的友好写在骨子里,初始化即生成 skill 文件与 CLAUDE.md,官方直接提供 Claude Code 插件,一条命令装进市场。数据工具敢让代理碰,靠的就是类型护栏加确认门这两道锁。

与既有工具的边界

官方对照表写得很直白。dlt 与 Airbyte 那类取数工具,对应这里的 ingest。dbt 的模型对应 SQL 与 transform。dbt 的测试对应 checks。Dagster 与 cron 的调度对应自然语言时间。托管数据仓库对应本机单个文件。边界同样直白,不能导入既有的 dbt 项目,已经在跑 dbt 加仓库的团队请继续用 dbt,请继续用 dbt 这句官方写得罕见地客气,抢用户的心思一点没有,反而攒了路人缘。它是给从零开始的小场景准备的,个人看板、自用分析、小团队内部报表。

部署与热度

运行需要 Bun 一点三点一四以上,macOS 与 Linux 可用,Windows 走子系统,官方文档给了步骤,照抄即可,这步劝退一部分人,剩下的都是决心。文档还专门备了给代理读的页面,机器可读这件事人家也想到了。MIT 开源,npm 包十月十八日更新到零点三,刚发布的包还没有下游项目依赖,属于起跑线阶段。开发方 Zabaca,发布者自述身份为公司 CTO,按自称口径听。Product Hunt 当日第二十四名,六十八票,对一个数据工具不算冷清,评论区有人点名夸类型校验设计,改列名能在读取处提前爆掉,这一条确实是同类里少见的。

解决了什么需求

数据管道这门手艺长期被企业级工具垄断,个人玩家想正经做一条要么上重武器要么糊脚本。croft 把正经工程的部分,依赖、检查、类型、回收站,做进了单文件形态,让一个人的数据项目也能有工程体面。举个例子,每天拉一次订阅统计存进本地,周末用 SQL 问问自己这周钱花哪儿了,这就是一条管道。代理时代的加成另算,类型与确认机制让 AI 接管管道的风险可控,这层设计在同类新工具里走在前面。已有重型栈的团队不用看,从零起步的个人值得花十分钟试试。

一句收尾,数据工程的下放是这几年最实的趋势,这次轮到了管道本身。

来源

  • 官网与文档 https://croft.zabaca.com
  • GitHub 仓库 https://github.com/Zabaca/croft
  • npm 包页 https://www.npmjs.com/package/@zabaca/croft
  • Product Hunt 发布帖 https://www.producthunt.com/products/croft-2