2026-10-24 · 2026-10-24

GitHub 趋势研究

每日从 GitHub Trending 中筛选真正值得架构师关注的项目——不只是搬运 star 数,而是判断它属于玩具、工具、平台还是未来基础设施。

95k+
本周总 Star 增速
807
深度分析项目
196
日更日报
863
核心跟踪方向
📅 2026-10-24 · 今日核心判断

本日最值得记的不是四个项目各自的领域,而是**同一件事在三种完全不同的技术层里被同时做出来:把'我不做的事'写进可核验的位置,并且用机器检查而不是用承诺来兜底**。**第一,Apple 内核移植在 48 小时内长出第三条互不相识的路径**——oosexgang/hackios-xnu-kernel(1.7 天 1,064⭐ ⑂183 fork/star 17.2%,subs 4,oi 7)走的是**第四条路线:不改内核、不伪造平台契约,而是直接编译 Apple 开源的 XNU 源码并打补丁**(xnu-8796.121.2 = iOS 16.5 的内核),用自写 EFI loader + Mu-Silicium UEFI 移植 + 替代闭源驱动 + Linux Wi-Fi 驱动兼容层跑**未修改的 iOS 16.5 用户态**(launchd → backboardd → SpringBoard → apps),且**它把'我们自己的检查会骗我们'写成了整整一篇 docs/checks.md**——十一让检查说谎的方式,每一条都附了真实代价('被跳过的检查没有计数'让 68+3+7=78 这个和式把 78 项里的未检查项也算成了匹配);**第二,theorem-labs/oss-verify-proofs(92⭐ ⑂6,subs 0,Rocq Prover)把'我证明了什么'与'我没证明什么'做成了可执行的形式**——20,164 条 statement 里 138 条已证、19,797 条仍 open,README 用一整节 'What a proof does not say' 逐条列出边界(不证明库正确、不覆盖整个库、只针对 riscv64 静态二进制而非源码、**没有一条 proof 证明 halts 所以不能排除永不终止的运行**),且把信任边界写成了一张清单(Rocq 内核与 vm_compute、LPS 语义模型、elf-snapshot 工具、oft check 对 Print Assumptions 的读取);**第三,xevrion/hatchzip(2.5 天 888⭐ ⑂17,fork/star 1.9%,Rust + Apache-2.0)把'破坏性操作'变成了一个带不变量的工程**——它从归档尾部反向解压并边解压边截断归档文件(因为只有截尾在各文件系统上都可用,打洞不支持 FAT32/exFAT),AGENTS.md 第一条原则即'The tool destroys its input. The invariant is absolute',并且**它拒绝在改动任何东西之前先算一遍'能不能装下'——7-Zip 默认把整个归档压成一个 solid block 时它直接拒绝执行,因为那块在解压完成前一点空间都释放不了**;**第四,haplollc/Vesalius(1.7 天 61⭐ ⑂1,Swift)用一个诚实的 benchmark 回答了'agent 到底会不会用我的 MCP'**——第一轮 24 次运行里 agent 只调用了 2 次,所以那一轮的 token 差距**主要是噪声**,作者把这个失败写进 README 而不是藏起来,重做后 20/20 次都调用,token 减 51%、质量 −0.5 分、且**它逐类列出'我没有赢的地方'(哪里功能在哪 −2.1 分、符号在哪 −1.7 分)**。**必须同时说清的热度限定**:本日四个项目 fork-star 为 17.2% / 1.9% / 6.5% / 1.6%,**依然不可横向比较**——HackiOS 的高比例对应'fork 去移植自己的机型'(仓库明写 common/new-device.sh + docs/PORTING.md + 设备 profile 模板),oss-verify 的 6.5% 对应'fork 去读证明语句',hatchzip 的 1.9% 与 Vesalius 的 1.6% 对应'**不需要 fork,只需等待上游或直接下载安装包**';**连续第四天观察到同一条分界线**。**而本日最刺眼的一条是生态层面的**:2026-10-22 12:24–12:28 之间,**至少 11 个互不相关的仓库在 8 分钟内集中发布**,全部使用 12 位随机字符的 owner 名(cs2-external-esp / pubg-external-esp / ff-external-esp / dbd-external-esp / deadlock-external / yt-view-bot / roblox-account-switcher / tiktok-dm-blaster / tiktok-view-bot / twitch-viewer-bot-ai / warzone-dlc-unlocker / pdf-annotate),**其中 9 个是 ESP 外挂、刷量机器人或账号切换器**——这是**可核验的批量账号行为**,不是有机增长。

本日最值得记的不是四个项目各自的领域,而是**同一件事在三种完全不同的技术层里被同时做出来:把'我不做的事'写进可核验的位置,并且用机器检查而不是用承诺来兜底**。**第一,Apple 内核移植在 48 小时内长出第三条互不相识的路径**——oosexgang/hackios-xnu-kernel(1.7 天 1,064⭐ ⑂183 fork/star 17.2%,subs 4,oi 7)走的是**第四条路线:不改内核、不伪造平台契约,而是直接编译 Apple 开源的 XNU 源码并打补丁**(xnu-8796.121.2 = iOS 16.5 的内核),用自写 EFI loader + Mu-Silicium UEFI 移植 + 替代闭源驱动 + Linux Wi-Fi 驱动兼容层跑**未修改的 iOS 16.5 用户态**(launchd → backboardd → SpringBoard → apps),且**它把'我们自己的检查会骗我们'写成了整整一篇 docs/checks.md**——十一让检查说谎的方式,每一条都附了真实代价('被跳过的检查没有计数'让 68+3+7=78 这个和式把 78 项里的未检查项也算成了匹配);**第二,theorem-labs/oss-verify-proofs(92⭐ ⑂6,subs 0,Rocq Prover)把'我证明了什么'与'我没证明什么'做成了可执行的形式**——20,164 条 statement 里 138 条已证、19,797 条仍 open,README 用一整节 'What a proof does not say' 逐条列出边界(不证明库正确、不覆盖整个库、只针对 riscv64 静态二进制而非源码、**没有一条 proof 证明 halts 所以不能排除永不终止的运行**),且把信任边界写成了一张清单(Rocq 内核与 vm_compute、LPS 语义模型、elf-snapshot 工具、oft check 对 Print Assumptions 的读取);**第三,xevrion/hatchzip(2.5 天 888⭐ ⑂17,fork/star 1.9%,Rust + Apache-2.0)把'破坏性操作'变成了一个带不变量的工程**——它从归档尾部反向解压并边解压边截断归档文件(因为只有截尾在各文件系统上都可用,打洞不支持 FAT32/exFAT),AGENTS.md 第一条原则即'The tool destroys its input. The invariant is absolute',并且**它拒绝在改动任何东西之前先算一遍'能不能装下'——7-Zip 默认把整个归档压成一个 solid block 时它直接拒绝执行,因为那块在解压完成前一点空间都释放不了**;**第四,haplollc/Vesalius(1.7 天 61⭐ ⑂1,Swift)用一个诚实的 benchmark 回答了'agent 到底会不会用我的 MCP'**——第一轮 24 次运行里 agent 只调用了 2 次,所以那一轮的 token 差距**主要是噪声**,作者把这个失败写进 README 而不是藏起来,重做后 20/20 次都调用,token 减 51%、质量 −0.5 分、且**它逐类列出'我没有赢的地方'(哪里功能在哪 −2.1 分、符号在哪 −1.7 分)**。**必须同时说清的热度限定**:本日四个项目 fork-star 为 17.2% / 1.9% / 6.5% / 1.6%,**依然不可横向比较**——HackiOS 的高比例对应'fork 去移植自己的机型'(仓库明写 common/new-device.sh + docs/PORTING.md + 设备 profile 模板),oss-verify 的 6.5% 对应'fork 去读证明语句',hatchzip 的 1.9% 与 Vesalius 的 1.6% 对应'**不需要 fork,只需等待上游或直接下载安装包**';**连续第四天观察到同一条分界线**。**而本日最刺眼的一条是生态层面的**:2026-10-22 12:24–12:28 之间,**至少 11 个互不相关的仓库在 8 分钟内集中发布**,全部使用 12 位随机字符的 owner 名(cs2-external-esp / pubg-external-esp / ff-external-esp / dbd-external-esp / deadlock-external / yt-view-bot / roblox-account-switcher / tiktok-dm-blaster / tiktok-view-bot / twitch-viewer-bot-ai / warzone-dlc-unlocker / pdf-annotate),**其中 9 个是 ESP 外挂、刷量机器人或账号切换器**——这是**可核验的批量账号行为**,不是有机增长。 今日头条趋势:Apple 内核移植的第三条路径:不改内核、不伪造平台契约,而是直接编译 Apple 开源的 XNU 源码并打补丁。oosexgang/hackios-xnu-kernel(1.7 天 1,064⭐ ⑂183 fork/star 17.2%,subs 4 oi 7,NOASSERTION,20677 KB)以 xnu-8796.121.2(iOS 16.5 内核)为基线,配自写 EFI loader(xnuloader/loader.c,clang+lld-link,无 EDK2)、Mu-Silicium UEFI 移植(uefi/ + mkxnuimg.py,打包出 hackios-redwood-boot.img 供 fastboot boot)、Apple 闭源驱动的替代实现(IOSurface / IOMobileFramebuffer / AppleKeyStore / 网络栈)、Linux Wi-Fi 驱动(WCN6750 via ath11k + LinuxKPI 层)与 Metal 驱动工作(Mesa 25.0.7 + AIR 前端,docs/air.md 记录 456 个系统 shader 中 293 个已在 Adreno 642L 上运行),**跑未修改的 iOS 16.5 用户态**('The iOS programs, frameworks and dyld shared cache are not changed by a single byte',缺失部分由内核替代驱动或 DYLD_INSERT_LIBRARIES 注入库补齐)。它跑在两处:POCO X5 Pro 5G(redwood / Snapdragon 778G,fastboot boot 不写闪存,重启即回 Android)与 QEMU aarch64(无需真机)。**README 用两列表格逐项写明 What works / Does not work (yet)**(蜂窝、蓝牙、本内核下充电、App Store 与 Apple ID 登录因无 Secure Enclave 而不可用、视频与实况照片不可用)。**最值得记的是 docs/checks.md——'How our own checks lie':十一让检查说谎的方式 + 一条对策,每条都附真实代价**(被跳过的检查没有计数 → 68+3+7=78 的和式把未检查项算成匹配;被静默的命令(patch -s --dry-run 返回 0 却不说话)被读成'恰好适用';从缺席推断('日志里没有' ≠ '没发生',日志中间段被丢弃;grep 的视野问题导致漏掉二十行之上的守卫;一个从不触发的看门狗只有在同时给出运行次数(26/26 零漂移)时才证明任何事)**且它明写 'missing information reads as a missing problem'**。⚠️ 许可为 NOASSERTION 而 LICENSE 首行是 'APPLE PUBLIC SOURCE LICENSE Version 2.0 - August 6, 2003'(APSL 2.0,与 GPL 不同的 copyleft,含专利报复条款)——**这是本批第四处可核验的元数据不一致。

阅读完整简报 →
⭐ 重点跟踪项目
查看全部 →
🍏
1,064 stars
oosexgang/hackios-xnu-kernel
HackiOS — XNU kernel;在 Android 手机硬件与 QEMU 上启动 Apple 开源的 XNU 内核(xnu-8796.121.2,iOS 16.5 的内核)并在其上运行**未修改的 iOS 16.5 用户态**;C · **LICENSE 首行为 APPLE PUBLIC SOURCE LICENSE Version 2.0 (August 6, 2003) 而 GitHub `license.spdx_id` 为 NOASSERTION**(本批第四处可核验元数据不一致)· 20677 KB · OOSEX GANG 组织 · 1.7 天 1,064⭐ ⑂183(**fork/star 17.2%,本批最高**)· subs 4 · oi 7 · topics 为空数组 · **全仓库仅 6 个 commit,contributors API 返回 2 人** · `releases` API 返回 1 个(v0.1.0 published 2026-10-22T06:42:07Z,**唯一 asset 为 hackios-redwood-boot.img**——redwood UEFI 内嵌自写 loader,可直接 fastboot boot,**不含任何 Apple 文件**)· 核心路线与前日两项目**互不相同**:UniXNU 走 UEFI + 伪造平台契约且**不 patch 内核**,Macintosh 走 EL2 hypervisor 跑官方 kernelcache,**HackiOS 走的是直接编译 Apple 开源 XNU 源码并打补丁**(xnu/redwood.patch + xnu/apply.sh + xnu/export.sh)· 组成:自写 EFI loader(xnuloader/loader.c,clang + lld-link,**不用 EDK2**)、UEFI 移植(uefi/ 为 Project Silicium 移植 + mkxnuimg.py 打包)、Apple 闭源驱动替代(IOSurface / IOMobileFramebuffer / AppleKeyStore / 网络栈)、Linux Wi-Fi 驱动层(WCN6750 via ath11k + LinuxKPI)、Metal 驱动工作(Mesa 25.0.7 + AIR→ir3 前端,**456 个系统 shader 中 293 个已在 Adreno 642L 上运行**)、minicrypto 替代 corecrypto、AMFI 与 Sandbox 替身 · **关键主张**:「The iOS programs, frameworks and dyld shared cache are not changed by a single byte」——缺失部分由内核替代驱动或 `DYLD_INSERT_LIBRARIES` 注入库(kern.exec_inject)补齐 · 两处运行:POCO X5 Pro 5G(redwood / Snapdragon 778G,**fastboot boot 不写闪存、重启即回 Android**)与 QEMU aarch64(Linux x86-64 + 12 GB 磁盘 + 4 GB 内存)· **README 用两列表格逐项写明 What works / Does not work (yet)**:锁屏、全部图标与两页主屏、系统手势、Settings/Clock/Calendar/Photos/Notes/Safari 等应用与天气日历 widget、Goodix GT9916 触摸与多点触控、8 核(cpus=8,大核 2.4 GHz,约 20 s 到锁屏)、Adreno 642L 经 Mesa/freedreno(gpu=1,CoreAnimation 用 OpenGL ES)、Wi-Fi(WCN6750,ath11k,55–90 Mbit/s)、扬声器与主麦、前后摄拍照(含 HEIC)、**iOS 写入的数据可跨重启存活(var_store=1 ufs_write=1)**、Sileo + Procursus(dpkg/apt)、tweaks、SSH;**不可用**:蜂窝、蓝牙、本内核下充电(只放电)、App Store 内容与 Apple ID 登录(**无 Secure Enclave,FairPlay daemon 退出**)、视频与实况照片 · **明确写「It is a research bench, not a ROM: a session lasts a given number of seconds, then the kernel returns to the loader and hands over its log.」** · **⭐ docs/checks.md 是本批最值得学的一份文档**:「How our own checks lie」——**十一让检查说谎的方式 + 一条对策**,开头即「They are written down because eleven of the twelve look the same: **missing information reads as a missing problem.**」:① 被跳过的检查没有计数(`continue` 不加总 → 68+3+7=78 的和式把未检查项算成匹配;**对空集做检查会打印 '0 of 47' 且看起来与诚实的零完全一样**)② 被静默的命令(`patch -s --dry-run` 返回 0 却不说话,被读成'恰好适用',去掉 -s 才说 'succeeded at 410 (offset 2 lines)')③ 从缺席推断('日志里没有' ≠ '没发生';日志中间段被丢弃,grep 的字段视野会漏掉二十行之上的守卫;**一个从不触发的看门狗只有在同时给出运行次数时才证明任何事——他们的看门狗是 26/26 零漂移**;一次打印零行的测量其实是 `grep` 了 `printf` 从不打印的模式;**「一个不能触发的测量看起来和一个没发生的事件完全一样」**)· **两个仓库分工**:本仓库含 XNU 补丁、EFI loader、UEFI 移植、Wi-Fi、QEMU 脚本、xl、预构建产物与 common/ 脚本;hackios-xnu-userland(328⭐ ⑂116,fork/star 35.4%,subs 1 oi 7,**4 个 commit,contributors API 返回 0**)含 init.c、注入库(inject.c / inject_sb.c / inject_media.c / inject_tweaks.c)、CoreAudio 输出设备、OpenGL ES 到 Mesa 的桥(eagl.c)、APFS 镜像构建器、Mesa 补丁与 AIR 工具、Procursus bootstrap · **两仓库都明写「No Apple files are in either repository」**,IPSW 由 ios165/fetch.sh 从 Apple CDN 下载到本机并本地解包 · **设备移植路径已存在**:`common/new-device.sh path/to/device.dtb` + docs/PORTING.md + 设备 profile(common/devices/{redwood,qemu-virt,_template}.conf)· ⚠️ **许可需特别核验**:仓库 LICENSE 是 Apple Public Source License 2.0(copyleft,含专利报复条款),GitHub 侧 NOASSERTION,**而 README 与 NOTICE 未说明该仓库自有代码的许可**
hackiosxnuios-16-5
🎓
92 stars
theorem-labs/oss-verify-proofs
Theorem statements about OSS-Fuzz fuzz targets as compiled RISC-V binaries, and machine-checked Rocq proofs of them;Rocq Prover · MIT · **2142968 KB ≈ 2.1 GB(本批最大)** · theorem-labs 组织 · 1.5 天 92⭐ ⑂6(**fork/star 6.5%**)· **subs 0** · oi 1 · topics 6(formal-verification/fuzzing/oss-fuzz/proofs/riscv/rocq)· **全仓库仅 2 个 commit**('OSS Verify proofs 2026.10.0' 2026-10-22T20:28:58Z + 'ci: one proof unit per check job' 2026-10-23T03:53:06Z),**contributors API 返回空数组** · `releases` API 返回 3 个(**v2026.10.0 published 2026-10-22T21:11:04Z 含 427 个 asset;v2026.10.0-src 含 851 个 asset;sources-v1 含 2 个**)· **核心定位**:「OSS-Fuzz runs the fuzz targets of open-source projects to search for inputs that make them fail. This repository holds Rocq proofs that, for some of these fuzz targets, **no such input exists within stated limits**. Each proof is about **compiled binaries, not source code**.」**60 个 entry point 在 25 个库上有证明,用 Rocq 9.2.0 检查,陈述于 LPS(Linux 进程运行 RISC-V 二进制的形式化模型)**· **⭐ README 第一节就是边界声明**:「**LPS is best effort and not complete.** It describes part of Linux, and it makes some assumptions that it does not check. **A proof is only as good as LPS.**」· **agreement statement 的定义**:「On every input on which the plain build stays within its memory budget, neither build reaches an error, and the plain build and the sanitizer build have the same set of observable behaviours.」——'every input' 指 LPS 接受为有效的全部进程输入(参数、环境变量、文件、stdin 等,LPS 排除少量如程序名后不得含 /);'error' 含崩溃、无效内存访问、abort()(含 assert 失败与 sanitizer 报告)、失败的 UBSan 检查、LPS 无法解释的步骤;'observable behaviours' 指进程读写标准流与连接的字节及其顺序、退出状态、文件最终内容;**内存预算为前提**(ASan 类 statement 用 2 GiB,UBSan 类用 16 GiB,**超预算的输入不在覆盖范围内**)· **⭐ 'What a proof does not say' 逐条列出**:不证明库正确(**sanitizer 检测不到的错误如错误结果或内存泄漏不在排除范围**)、只覆盖一个入口点可达的代码而非整个库、**只针对 clang 20.1.8 + musl 构建的静态 riscv64 程序,不是源码也不是 OSS-Fuzz 的 x86-64 构建**、在 LPS 中为真而 LPS 与 Linux 不同处可能不适用、**且本次发布没有任何一条 proof 证明 halts,所以都不能排除永不终止的运行** · **规模被诚实摊开**:1,381 个 OSS-Fuzz 项目中 **427 个 available**、781 个 language pending、97 个 not yet built、3 个 needs model support、3 个 no compiler、32 个 no harness、6 个 excluded、32 个 held;427 个可用项目有 2,148 个 harness 与 **20,164 条 statement**——**138 条已证、0 条已知为假(0 counterexamples、0 witnessed false)、0 条疑似为假、229 条 blocked by the model、0 条 withheld、19,797 条 open**;**8,578 个二进制随发布附上,0 个withheld**;2,148 个 harness 中 2,141 个有全部四种构建(plain / ASan / UBSan / ASan+UBSan);**analyses/known-issues.md 逐条列出每个非 open 非 proved 的 statement 及原因**(例:arrow/arrow-csv-fuzz 全部四条 statement 因'二进制查询 CPU affinity 并启动线程,模型尚未覆盖'而 blocked)· **可核验性设计**:每个证明在 proofs///provenance/ 有 build record,含上游仓库与 commit、harness 文件、recipe、编译器、构建器镜像、static AddressSanitizer commit、编译与链接 flags、**每个二进制的 SHA-256** 与许可;`oft check` 先对每个二进制校验 SHA-256,再构建内存映像与 statement,编译每条证明,编译一个给证明的定理赋予 statement 类型的 wrapper,**然后读取 `Print Assumptions` 的输出并拒绝任何不在允许列表中的假设** · **公理边界**:只有 toolchain/allowed-axioms.txt 里的——Rocq 原生整数/数组/字符串类型及其规范,加上 6 条标准库公理(classic / functional_extensionality_dep / constructive_indefinite_description / propositional_extensionality / sig_forall_dec / sig_not_dec)· **⭐ 许可分层处理值得单列**:NOTICE 明确'我们写的 statements、tools、documentation 与 proofs 用 MIT',而'由 Anthropic 以 Apache-2.0 或 MIT 授权的证明派生而来的证明保留那些许可与文件头',LICENSES/ 下同时存 anthropic-proofs-LICENSE(Apache-2.0)、anthropic-proofs-LICENSE-MIT、anthropic-proofs-NOTICE,且每个此类证明的 build record 指名这三个文件 · **验证成本**:16 核上一次证明检查最多需 20 GiB 内存(每核编译一个文件,核越多内存需求越大);CI 的 release-check 在每次 push 到 main 与每周各跑一次并检查每个已提交证明,pr workflow 检查 PR 改动 · checker image 固定到 sha256:cc9ae43a9f4b0dd59d7c8d30727d36e039bfe72a2a9f9c4a99c68e413037e902 · ⚠️ **subs 0 + 2 commits + contributors API 空数组 = 机构发布而非社区共建**;2.1 GB 仓库体积对 clone 不友好;**'proof 只对静态 riscv64 有效'意味着与 OSS-Fuzz 实际的 x86-64 动态构建之间存在可核验的落差**
oss-verifyrocqformal-verification
📦
888 stars
xevrion/hatchzip
Extract huge archives in place: the archive shrinks as your files hatch, so you only need room for the output. ZIP, 7z, tar, split archives.;Rust · Apache-2.0 · 1990 KB · xevrion 个人 · 2.5 天 888⭐ ⑂17(**fork/star 1.9%,本批最低**)· subs 1 · oi 8 · topics 12 · **contributors API 返回 1 人** · **3 个 release**(v0.1.0 published 2026-10-22T11:12:59Z / v0.1.1 2026-10-22T13:20:47Z / v0.1.2 2026-10-23T14:18:16Z,**每个 22 个 asset**:Linux tar.gz、.deb、.rpm、AppImage、macOS aarch64/x86_64 dmg、Windows x64 安装器)· **解决的问题**:180 GB 归档解出 200 GB,WinRAR/7-Zip/unzip 需 380 GB 磁盘,因为归档与产物必须同时存在;**HatchZip 只需略多于 200 GB**——从归档尾部反向解压,边解边把已完成的单元从归档文件尾部截断,归档让出的空间被下一个文件复用 · **⭐ 技术选择被写成理由链**:只能从尾部截断,因为从前或从中删除需要打洞(Linux `fallocate` / Windows `FSCTL_SET_ZERO_DATA` / macOS `F_PUNCHHOLE`),**而 FAT32 与 exFAT 不支持打洞,且各系统行为不同**;每个格式把归档描述为 unit 列表(ZIP 一个 entry、7z 一个 solid block 或非 solid 时一个文件、tar 一个 entry 含长名/pax 记录、.tar.gz 整个归档从前端解),**unit 按文件位置倒序解压,每批之后把归档截断到该批最低 unit 的起点**;**7z 的 solid block 只能从头解码,因此只能在其全部解出后才释放——最大 unit 就是就地解压的主要成本**(文件级输出 + 约等于最大 unit 的空间)· **⭐ 唯一硬拒绝场景是可复算的**:7-Zip 默认设置会把整个归档放进一个 solid block,此时'一块在被完全解出前一点空间都释放不了',**HatchZip 在碰任何东西之前就拒绝并说明原因**(README 对比表最后一行的结果是'Refused before touching anything')· **⭐ 对比表给了具体数值**(同一份 200 MB 游戏数据 21 文件、220 MiB tmpfs、约 50 MB 空闲):ZIP 180 MB → unzip 在第 6/21 个文件耗尽空间,HatchZip 全部完成且**逐字节一致**;7z 25.01 `-ms=20m`(10 个 solid block)需 380 MB → HatchZip **0.64 s** 完成且逐字节一致;7z 分 5 卷各 40 MB 需 380 MB → HatchZip 完成、**卷被逐个删除、峰值占用 210 MB**;tar 需 400 MB → HatchZip **0.12 s** 完成且逐字节一致;7z 默认设置 → 拒绝。**速度**:ZIP 解压 0.25–0.35 s vs unzip 6.00 的 1.48–1.50 s(**含一次 unzip 跳过的 fsync**)。**测量环境**:Fedora 43、Intel Core i7-14700HX、SK Hynix NVMe SSD、热页缓存;空间测试用 220 MiB tmpfs 模拟整机磁盘,速度测试用 ext4;**速度来自并行解压,所以只含一个巨型文件的归档按单核速度解出** · **⭐ AGENTS.md 把不变式写成绝对句**:「**The tool destroys its input. The invariant is absolute: the journal never claims a file before it is durable, and the archive is never truncated past an entry the journal doesn't claim.**」「Anything that can be refused is refused before the archive is touched.」「Every number in the README and docs is measured on real hardware, never estimated. Paste the measurement when you change one.」「A behavior is not finished until it ran for real: a real archive extracted, the output compared byte for byte, the crash tests passing.」「**Never run `extract` on an archive you can't recreate. It deletes it.**」并把通信规范写成「State what you did not verify. An honest gap costs less than a confident wrong claim.」· **⭐ 它把踩过的坑写成具体条目**('Traps already fallen into'):① zip crate 反向扫描整个归档找 end record,**storage::Reader 必须对已截断区域返回零而不是报错,否则每次恢复都失败于 'No CDFH found'**;tar 依赖同样的零来停在截断点;② Windows 上必须用字节区间锁,因为锁归档会阻塞自己的读取线程('another process has locked a portion of the file'),platform::open_exclusive 在那里改用 share mode;③ Linux 用一次 syncfs 刷新一批,所以每目录的 bug 只在 macOS 与 Windows 上暴露;链接条目的文件夹直到最后才存在,不要按批处理;④ 不要在测试里硬编码单元数(7z writer 给某些空文件单独一个 block,会让每个计数差一——改为断言不变式);⑤ 7-Zip 默认设置可能把整个归档放进一个 solid block,测试要同时用 `-ms=` 与默认设置;⑥ 恢复时崩溃批次写过但未提交的文件仍占空间,必须先删除再做空间检查,否则检查会拒绝一个其实装得下的运行 · **架构分层**:crates/core(archive/ 每格式一文件 + **storage.rs 是唯一缩减归档字节的代码** + engine.rs 规划并执行每个格式的解压 + journal.rs 崩溃安全状态 + session.rs 前端调用面 + platform/ 每 OS 一文件 linux.rs/macos.rs/windows.rs/unix.rs)+ crates/cli(hatchzip 命令与端到端测试)+ crates/gui + crates/shell · **journal 是 .hatchzip 的小 JSON,记录 format(zip/7z/tar/tar.gz,使恢复永远不必猜半 eaten 文件)、每个卷的原始长度与 CRC-32** · **保存的尾部**:ZIP 与 7z 把索引放在末尾,而这正是截断首先移除的部分——因此截断前 HatchZip 把最后一个 unit 数据之后的全部内容复制到 `.hatchzip-tail` 并在 journal 里记 CRC-32,之后归档通过 storage::Reader 解析(对已截断区域返回零,让 zip crate 反扫时零永远不匹配签名,让 tar 把零读成归档结束)· **平台约束**:Rust 1.95(pin 在 rust-toolchain.toml),MSRV 1.89 为 File::try_lock;**禁止在 platform/ 之外使用 cfg(target_os)/cfg(windows)**,CI 在 Linux/macOS/Windows 三平台跑测试('since nobody develops on the latter two')· ⚠️ **contributors 仅 1 人、subs 仅 1**——单一作者项目;**未代码签名**(Windows 需'更多信息→仍要运行',macOS 15+ 需手动允许);**APFS 与 NTFS 上的打洞(hole punching)未验证**(README 明说 'NTFS and APFS not yet verified',因此大文件内部省空间的优化在 macOS 与 Windows 上不生效)
hatchzipin-place-extractionzip
📈 趋势热榜
完整趋势表 →
1
Apple 内核移植的第三条路径:不改内核、不伪造平台契约,而是直接编译 Apple 开源的 XNU 源码并打补丁。oosexgang/hackios-xnu-kernel(1.7 天 1,064⭐ ⑂183 fork/star 17.2%,subs 4 oi 7,NOASSERTION,20677 KB)以 xnu-8796.121.2(iOS 16.5 内核)为基线,配自写 EFI loader(xnuloader/loader.c,clang+lld-link,无 EDK2)、Mu-Silicium UEFI 移植(uefi/ + mkxnuimg.py,打包出 hackios-redwood-boot.img 供 fastboot boot)、Apple 闭源驱动的替代实现(IOSurface / IOMobileFramebuffer / AppleKeyStore / 网络栈)、Linux Wi-Fi 驱动(WCN6750 via ath11k + LinuxKPI 层)与 Metal 驱动工作(Mesa 25.0.7 + AIR 前端,docs/air.md 记录 456 个系统 shader 中 293 个已在 Adreno 642L 上运行),**跑未修改的 iOS 16.5 用户态**('The iOS programs, frameworks and dyld shared cache are not changed by a single byte',缺失部分由内核替代驱动或 DYLD_INSERT_LIBRARIES 注入库补齐)。它跑在两处:POCO X5 Pro 5G(redwood / Snapdragon 778G,fastboot boot 不写闪存,重启即回 Android)与 QEMU aarch64(无需真机)。**README 用两列表格逐项写明 What works / Does not work (yet)**(蜂窝、蓝牙、本内核下充电、App Store 与 Apple ID 登录因无 Secure Enclave 而不可用、视频与实况照片不可用)。**最值得记的是 docs/checks.md——'How our own checks lie':十一让检查说谎的方式 + 一条对策,每条都附真实代价**(被跳过的检查没有计数 → 68+3+7=78 的和式把未检查项算成匹配;被静默的命令(patch -s --dry-run 返回 0 却不说话)被读成'恰好适用';从缺席推断('日志里没有' ≠ '没发生',日志中间段被丢弃;grep 的视野问题导致漏掉二十行之上的守卫;一个从不触发的看门狗只有在同时给出运行次数(26/26 零漂移)时才证明任何事)**且它明写 'missing information reads as a missing problem'**。⚠️ 许可为 NOASSERTION 而 LICENSE 首行是 'APPLE PUBLIC SOURCE LICENSE Version 2.0 - August 6, 2003'(APSL 2.0,与 GPL 不同的 copyleft,含专利报复条款)——**这是本批第四处可核验的元数据不一致
oosexgang/hackios-xnu-kernel · oosexgang/hackios-xnu-userland
91/80
2
把'我证明了什么'与'我没证明什么'做成可执行的形式。theorem-labs/oss-verify-proofs(92⭐ ⑂6,fork/star 6.5%,subs 0 oi 1,Rocq Prover,MIT,2142968 KB ≈ 2.1 GB)针对 OSS-Fuzz 的 fuzz target 给出机器检验的 Rocq 证明:'There are 60 entry points in 25 libraries with proofs. The proofs are checked with Rocq 9.2.0. They are stated in LPS, a formal model of a Linux process that runs a RISC-V binary.' **证明的对象是编译后的二进制而非源码**——每条 agreement statement 主张'在 plain build 未超内存预算的每个输入上,sanitizer build 不触发任何错误,且两者的可观测行为集合相同'。**README 有独立一节 'What a proof does not say' 逐条列边界**:不证明库正确(sanitizer 检测不到的错误如错误结果或内存泄漏不在排除范围内)、只覆盖一个入口点可达的代码而非整个库、只针对 clang 20.1.8 + musl 构建的静态 riscv64 程序而非源码也非 x86-64 构建、**在 LPS 中为真而 LPS 与 Linux 不同处可能不适用**、**且本次发布没有任何一条 proof 证明 halts,因此都不能排除'永不终止的运行'**。**规模被诚实地摊开**:1,381 个 OSS-Fuzz 项目中 427 个可构建,2,148 个 harness、20,164 条 statement——138 条已证、0 条已知为假、229 条被模型阻塞、19,797 条仍 open。**信任边界写成清单**:Rocq 内核与其 vm_compute、toolchain/allowed-axioms.txt 里的公理(LPS 之外的只有 Rocq 原生整数/数组/字符串类型规范与 6 条标准库公理)、LPS 语义模型(commit f1006fe81783)、把 ELF 变成 LPS 内存映像的 elf-snapshot 与 rocq-read-file 0.0.2、oft check 对 Print Assumptions 的读取。**许可处理值得单列**:NOTICE 明确'我们自己写的 statements/tools/docs/proofs 用 MIT',而'由 Anthropic 以 Apache-2.0 或 MIT 授权的证明派生而来的证明,保留那些许可与其文件头',LICENSES/ 下同时存放 anthropic-proofs-LICENSE(Apache-2.0)、anthropic-proofs-LICENSE-MIT 与 anthropic-proofs-NOTICE,且每个此类证明的 build record 指名这三个文件。⚠️ subs 0、contributors API 返回空数组、**仅 2 个 commit**('OSS Verify proofs 2026.10.0' 与一条 CI 改动),**这是机构发布而非社区共建
theorem-labs/oss-verify-proofs
90/80
3
把'破坏性操作'变成带不变量的工程,并且用'提前拒绝'代替'事后补救'。xevrion/hatchzip(2.5 天 888⭐ ⑂17,fork/star 1.9%,subs 1 oi 8,Rust,Apache-2.0,1990 KB)解决一个具体到能算的空间问题:180 GB 的归档解出 200 GB,用 WinRAR/7-Zip/unzip 需要 380 GB 磁盘,因为归档与产物必须同时存在;**HatchZip 从归档尾部反向解压,边解边把已完成的单元从归档文件尾部截断,于是归档让出的空间被下一个文件复用,只需略多于 200 GB**。它支持 ZIP / 7z / tar / .tar.gz / 分卷。**技术选择被写成理由链**:只能从尾部截断,因为从前或从中删除需要打洞(Linux fallocate / Windows FSCTL_SET_ZERO_DATA / macOS F_PUNCHHOLE),**而 FAT32 与 exFAT 不支持打洞,且各系统行为不同**;7z 的 solid block 只能从头解码,所以'最大单元'就是就地解压的主要成本。**它给出的唯一硬拒绝场景是一个可复算的判断**:7-Zip 默认设置会把整个归档放进一个 solid block,此时'一块在被完全解出前一点空间都释放不了',**HatchZip 在碰任何东西之前就拒绝并说明原因**。**README 的对比表给了具体数值**:220 MiB tmpfs 上约 50 MB 空闲,200 MB 数据(21 文件)——ZIP 180 MB 时 unzip 在第 6/21 个文件耗尽空间而 HatchZip 全部完成且逐字节一致、7z -ms=20m(10 个 solid block)需 380 MB 而 HatchZip 0.64 s 完成、分成 5 卷的 7z 峰值占用 210 MB、tar 需 400 MB 而 HatchZip 0.12 s 完成、**7z 默认设置被拒绝**;速度上 ZIP 解压 0.25–0.35 s 对比 unzip 6.00 的 1.48–1.50 s(含一次 unzip 跳过的 fsync)。**AGENTS.md 把不变式写成绝对句**:'The tool destroys its input. The invariant is absolute: the journal never claims a file before it is durable, and the archive is never truncated past an entry the journal doesn't claim.',并写明 'Anything that can be refused is refused before the archive is touched' 与 'Never run extract on an archive you can't recreate. It deletes it.'。**它还把踩过的坑写成具体条目**:zip crate 反向扫描整个归档找 end record,storage::Reader 必须对已截断区域返回零而不是报错,否则每次恢复都失败;Windows 上必须用字节区间锁因为锁归档会阻塞自己的读取线程;Linux 用一次 syncfs 刷新一批所以每目录的 bug 只在 macOS 与 Windows 上暴露;恢复时崩溃批次写过但未提交的文件仍占空间,必须先删除再做空间检查。**3 个 release(v0.1.0/v0.1.1/v0.1.2),每个 22 个 asset,含 Linux tar.gz 与 .deb/.rpm/AppImage 与 macOS dmg 与 Windows 安装器
xevrion/hatchzip
89/80
4
用一次诚实的失败轮次回答'agent 到底会不会用我的 MCP'。haplollc/Vesalius(1.7 天 61⭐ ⑂1,fork/star 1.6%,subs 1 oi 1,Swift,lic=null 无根级 LICENSE 文件,7870 KB)为 Claude Code 提供一个本地代码图(SwiftSyntax 解析的调用图 + MCP server + CLI + Mac app + VS Code 扩展),五个只读工具(usages / feature_map / outline / architecture / dependency_cycles)。**它最有价值的部分不是功能而是 benchmark 的诚实**:作者做了两轮——第一轮 24 次运行中 Claude 只在 2 次里调用了 Vesalius,**于是作者判定那一轮 13% 的 token 差距'主要是 run-to-run 噪声'并把失败原因写进 README**(根因是 Claude Code 把 MCP 工具藏在 tool search 后面而几乎从不搜索);重做后按问题类型各配一个更锋利的工具、并把最常被问的两个预加载,**20/20 次全部调用,token 中位数减 51%(95% CI 36%–62%,几何均值;204k → 113k),轮数减 43%,耗时减 41%,质量 −0.5 分(95% CI −1.6 到 +0.8)**。**它诚实标注了没赢的地方**:按问题类型列出 token 与质量差——哪里功能在哪 −38% token 但 **−2.1 分**、符号在哪只 −8% token 且 **−1.7 分**、架构 −33% 且 −1.2 分、变更影响 −42% 且 −1.0 分;**20 题中有 4 题 token 反而更多(+2% 到 +19%),11 题质量移动超过 1 分(3 题更好、8 题更差)**,并说明'每题只有一次运行和一次评审,单题噪声很大'。**它还划出方法论边界**:8 题是留出集(在 Vesalius 2 设计之后写的、来自两个从未用于构建它的代码库),留出集上减 44%(95% CI 12%–65%),另 12 题是它对着建的。**三个代码库是私有应用且答案 key 与 transcript 不公开**('so they cannot leak into future tool designs or training data')。**对比表写明它不是所有人的正确工具**:调用图只覆盖 Swift(经类型解析)、TypeScript、JavaScript、Python,其余 13 种语言只有词法;只在 macOS 15+ Apple silicon 上运行;**在仓库里不留任何东西**(对比 CodeGraph 留 .codegraph/、graphify 留 graphify-out/);无网络(对比 CodeGraph 默认开匿名遥测)。⚠️ **无根级 LICENSE 文件**(tree 递归查询确认仅有 CTreeSitter 与 tree-sitter 语法与 vscode-extension 的第三方许可),GitHub license 字段为 null,**这意味着默认版权保留
haplollc/Vesalius
88/80
🏷️ 核心关注领域