
从 quiche、ai-memory 和 coder 出发,分别练习 QUIC 协议实现、把 Agent 记忆写成普通文件,以及用 Terraform 定义开发环境,并给出今晚能跑通的最小路径。
0.30.0,同一天还发出 tokio-quiche 0.20.0 和 h3i 0.7.0,主分支到 9 月 21 日晚上还有提交。ai-memory 的 v2.4.0 在今天早上发布,两天前的 9 月 20 日刚发过 v2.3.2。coder 的 v2.37.2 发布于 9 月 19 日凌晨,同一天还发出两个维护版。123450.30.0 在 9 月 18 日凌晨发布,上一个正式版是 7 月 14 日的 0.29.3。同一天仓库里还放出了 tokio-quiche 0.20.0(tokio 生态的封装)和 h3i 0.7.0(HTTP/3 的互操作测试工具);主分支到 9 月 21 日晚上还在改,最新一条提交给 C API 的 PathStats 补上了 max_rtt 字段。12Connection 对象:recv() 处理收到的包,send() 生成要发出去的包,timeout() 告诉你下一个定时器什么时候到,超时之后调 on_timeout() 再继续 send()。socket 的收发在库外面,由调用方提供。想学「协议实现怎么和运行时解耦」,这里是现成的样板。6--features ffi,会一起生成静态库 libquiche.a),C、C++ 以及其他能调用 C 接口的语言都能接进来;apps/ 目录里是示例客户端与服务端两个二进制,可以单独用来验证握手和数据流。6send() 返回的 SendInfo 里带一个 at 字段,表示这个包建议在什么时刻发出去;应用据此做 pacing,就能避免把包一次性全推出去造成短时拥塞和丢包。6boring-sys 编译 BoringSSL(QUIC 的 TLS 握手建立在它上面),所以机器上要有 cmake,Windows 上还要装 NASM。示例程序自带一张自签证书,README 明确写了这些示例不适合放进生产环境。6git clone https://github.com/cloudflare/quiche
cd quiche
cargo build --examples
cargo run --bin quiche-server -- --cert apps/src/bin/cert.crt --key apps/src/bin/cert.key
# 另开一个终端
cargo run --bin quiche-client -- https://cloudflare-quic.com/cloudflare-quic.com 发一次请求,服务端示例用仓库自带的自签证书起在本地。6--help 把两个工具的开关过一遍;然后到 apps/ 的示例源码里找到 conn.timeout() 和 SendInfo,看它们怎么被接进那个循环。这一段读懂了,「库把 I/O 留给调用方」在代码里到底长什么样,你就有具体印象了。60.30.0。这一版带破坏性改动:PathEvent 标上了 #[non_exhaustive] 并新增 PmtuUpdated,用 Rust 穷举匹配路径事件的代码要补一个兜底分支,C 程序要处理 QUICHE_PATH_EVENT_PMTU_UPDATED;BoringSSL 的支持范围改成 >=4.19,<6,Boring 5 默认启用后量子密钥交换,ClientHello 因此可能被拆进多个 Initial 包,需要更小或更确定的 ClientHello 可以用 set_curves_list() 指定曲线列表;静态链接 libquiche.a 的 C 程序要改用 C++ 链接器。还停在更旧版本上的话,先并到 0.29.3 以上——7 月 14 日那一版修了三处安全问题,其中一处是对端从快速变化的源端口发包时路径事件队列的无界增长。17v2.4.0 在北京时间今天早上 7 点 45 分发布,Docker 镜像和 AUR 包跟着一起更新;两天前的 v2.3.2 也在早上发布。主分支今天凌晨的一批提交在修 bug,例如调度器在审查失败时没有释放已占用的名额。34# 1. 装 wrapper 脚本到 ~/.local/bin/ai-memory(README 给了带 sha256 校验的下载步骤)
# 2. 起服务;不配 LLM / EMBEDDING 变量就是零 LLM 模式
docker run -d --name ai-memory --restart unless-stopped \
-p 127.0.0.1:49374:49374 -v ai-memory-data:/data \
docker.io/akitaonrails/ai-memory:latest
# 3. 接进客户端
ai-memory install-mcp --client claude-code --apply
ai-memory install-hooks --agent claude-code --apply$HOME 挂进去,也是唯一需要落在宿主文件系统上的文件。更省事的一条路是 ai-memory run claude:首次运行会自动给这个客户端装好钩子和 MCP 配置,之后的会话就自动记账。启动时加 --enable-web,还能得到一个只读的 wiki 浏览页面和 /api/v1 下的 JSON 接口。8v2.4.0,Docker 标签写 ai-memory:2.4.0。默认快速开始没有认证、只绑在回环地址上;要把服务给局域网或小团队用,先按 README 的说明加 bearer token,再考虑 TLS。另外那条硬规矩值得记住:一个数据目录只跑一个服务实例。38v2.37.2 在 9 月 19 日凌晨发布,修的是服务端接受缺失 RPC 消息的问题;同一天仓库还发出了 v2.36.6 与 v2.35.8 两个维护版,其中 v2.36.6 的说明标注了从 9 月 17 日起进入稳定状态。510coderd 是控制面(生产部署要接 PostgreSQL 13 以上),provisioner、provisionerd、provisionersdk 这一组负责真正执行模板,agent 是住在工作区里的进程,tailnet 管隧道,pty 管终端。想学「一个平台怎么把危险动作关进单独的进程」,从 provisionerd 这一个目录读起就够。coder/coder 仓库coder server,它用内建的数据库并分配一个 *.try.coder.app 的访问地址供试用;要上生产再补 --postgres-url 与 --access-url。今晚试用的和真部署跑的是同一份二进制。9curl -L https://coder.com/install.sh | sh
coder server
# 浏览器打开 http://localhost:3000,创建第一个用户,选 Docker 模板,provision 一个工作区docker pull ghcr.io/coder/coder:2.37.2。5provisionerd 这个目录,弄清模板的 Terraform 由哪个进程执行、结果怎么回报给控制面。59v2.37.2。部署还在 2.36 系列上就跟 v2.36.6,2.35 系列同理。许可要看清两份文件:仓库根目录的 LICENSE 是 AGPL-3.0,enterprise/ 目录另有一份企业许可;想把这里的代码并进自己的产品之前,这两份都值得读完。911| 你想练的主线 | 仓库与本期信号 | 最小条件 | 第一条可观察路径 | 主要限制 |
|---|---|---|---|---|
| 网络协议实现:把规范落到代码 | quiche · 0.30.0,9 月 18 日凌晨发布 | Rust 1.88 以上、cmake | 本地起 server,用 client 完成一次握手并发出请求 | 示例程序不适合生产;0.30.0 有破坏性改动。(README) |
| 本地优先服务:让状态存成普通文件 | ai-memory · v2.4.0,今天早上发布 | Docker 或 Podman + 一个 MCP 客户端 | 跑一次会话,到 wiki 页面里读它写下的 markdown | 默认无认证、只绑回环;原生 Windows 为实验性。(README) |
| 基础设施自动化:用代码描述环境 | coder · v2.37.2,9 月 19 日凌晨发布 | Docker;上生产需 PostgreSQL 13 以上 | coder server 之后在浏览器里 provision 一个工作区 | 仓库体量大,不适合通读;AGPL-3.0 与企业许可分开。(README) |
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.