一个让 PDF 假装被扫描过的小工具今天冲到 200 star,名字直白得好笑:make-look-scanned。今天还有几个老朋友发了新版,挑了值得说的。
省流摘要:make-look-scanned(PDF 伪扫描)、AI-Canvas(无限画布生图)、incudal(NAT VPS 面板)、axios、Next.js、FastAPI、pnpm、uv 等 8 个开源项目/AI工具速览。涵盖 HTTP 库、Web 框架、包管理器、PDF 处理、AI 绘图工具方向。
热门动态
axios — v1.18.0 把重定向和 URL 处理收紧了一圈
★109081 | JavaScript
https://github.com/axios/axios
axios 这次 1.18.0 没加什么花哨功能,主线是给重定向和 URL 解析做安全加固,顺手把 validateStatus 的配置语义理顺了。说白了就是堵口子——之前这类地方时不时有人能玩出 SSRF 或者奇怪的跳转。
同一天它还补了个 0.33.0 给还在用 0.x 老版本的项目,连 Node.js 26 都覆盖到了。我个人挺欣赏这种态度:一个十几年的库,没把老用户当包袱甩掉,安全补丁该回灌就回灌。你要是项目里 axios 版本卡在很早的号段,这次值得抬一下。
Next.js — 16.3 canary 把内嵌的 Claude Code 插件市场删了
★140108 | JavaScript
https://github.com/vercel/next.js
这个改动有点意思。Next.js 之前在框架里塞了个 Claude Code 的插件市场入口,16.3 的 canary 这两天又默默把它整个移除了(#94877)。一个 Web 框架把 AI 编程工具的市场内嵌进来再撤掉,能看出他们在 AI 集成这件事上还在反复掂量边界。
坦白讲我觉得撤得对。框架就该干框架的事,把第三方工具的应用商店焊死在里面,迟早是维护负担。同期 canary 还在 turbopack 上做去重和 chunk 加载重试,这些才是大家真正天天受益的地方。
FastAPI — 0.138.0 现在能直接托管前端静态文件了
★99451 | Python
https://github.com/fastapi/fastapi
FastAPI 0.138.0 加了个我等了挺久的东西:app.frontend("/", directory="dist"),一行就能把打包好的前端 dist 目录挂上去。以前你想用 FastAPI 同时端 API 和前端,得自己折腾 StaticFiles 和 catch-all 路由,写起来总有点别扭。
现在这事被收成了一等公民 API。对那种前后端不想拆两个服务、就想一个进程跑完的小项目来说,省心不少。说实话 tiangolo 一直很懂中小项目的痛点,这个更新就是典型的"小但天天用得上"。
pnpm — v11.8.0 给 install 加了 --dry-run
★35564 | Rust
https://github.com/pnpm/pnpm
pnpm 11.8.0 这个 --dry-run 我第一反应是"怎么现在才有"。它会跑完整的依赖解析,把这次安装会改动什么全报给你看,但一个字节都不往磁盘上写——不动 lockfile,不动 node_modules。
用处很实在:升级依赖前先 dry-run 一把,心里有底再真装。CI 里也能拿它做"锁文件会不会变"的预检。配合上个补丁版里那个路径穿越的安全修复一起看,pnpm 最近在"装之前先让你看清楚"这条线上挺用心。
uv — 0.11.22/0.11.23 这两天连发,发布顺序都给你排明白了
★86613 | Rust
https://github.com/astral-sh/uv
uv 还是那个停不下来的节奏,两天里 0.11.22、0.11.23 接连出。比较实在的一个改动是 uv publish 现在先传 wheels 再传 sdists——别小看这个顺序,PyPI 上 wheel 先就位,下游用户能更快拿到能直接装的包,而不是卡在源码编译上。
它还加了 TY 和 RUFF 两个环境变量方便锁版本。0.11.23 则是回滚了一个会误伤 pre-commit-uv 的改动。这种"上了发现有副作用赶紧撤"的反应速度,是我一直愿意把 uv 放进新项目的原因。
新发现
make-look-scanned — 让干净 PDF 假装被扫描仪扫过
★204 | Go
https://github.com/overflowy/make-look-scanned
这个项目的用途一看就懂又一看就乐:把一份规规矩矩的电子 PDF,处理成像是用扫描仪扫出来的——轻微歪斜、噪点、泛黄,全给你加上。Go 写的,既能命令行跑,也编译成了 WASM 直接在浏览器里用,不上传文件。
用途你懂的,有些流程就是非要"扫描件"不可,明明是电子档还得打印再扫一遍。这工具算是把这套无意义仪式自动化了。一天 200 star,说明被这事烦到的人是真不少。技术上 WASM 那条路也干净,文件不出本地,比那些要你上传的在线工具靠谱。
AI-Canvas — 一块和 Codex 打通的无限画布
★49 | TypeScript
https://github.com/binghe1980/AI-Canvas
AI-Canvas 把 AI 生图、标注、迭代修改放进了一块可以无限拖拽的画布里,而且直接和 Codex 打通。和那种"输入框出一张图"的产品不一样,它更像让你在一张大白板上反复涂改:生成、框选、改提示、再生成,思路能铺开。
刚出两天 49 star,还很早期。但这个交互方向我挺看好——生图本来就是个高频迭代的活儿,线性对话框天生不适合,画布才对路。能不能做扎实另说,至少方向选对了。想折腾 AI 绘图工作流的可以盯一眼。
incudal — 基于 Incus 的 NAT VPS 售卖与管理面板
★82 | TypeScript
https://github.com/qwer-xyz/incudal
incudal 解决的是个挺具体的小生意需求:基于 Incus(就是原来 LXD 那套的社区分叉)做 LXC / KVM 的 NAT VPS,从售卖、交付到管理一条龙做成了面板。有在线 demo 可以直接看。
对那些想拿手头机器切点小鸡卖、又不想从零写计费和开通流程的人,这东西省的活儿不少。Incus 这两年起势明显,围着它长出来的工具链越来越像个生态了。82 star 不多,但目标用户本来就垂直,能精准戳中就够了。
今天这几个里,make-look-scanned 那种"荒诞但真有人需要"的劲儿最戳我。你最想试哪个?明天见。
夜雨聆风