Go周刊2026W28 | Go 1.27rc2、gopls 0.23.0、GoReleaser 2.17、Excelize 2.11.0、TypeScript Go 重写

本周 Go 生态迎来密集更新:Go 1.27rc2、gopls 0.23.0 全面支持候选版本特性,encoding/json/v2 默认后暴露“any 陷阱”;GoReleaser 2.17 新增 RISC-V 64 支持,Excelize 2.11.0 发布。此外,TypeScript 编译器 Go 重写的深远意义引发讨论,Postgres 替代专用系统的理念获实践支撑,htmx 以 67% 代码缩减对比 React 引人关注。

📢 Go 官方

Go 1.26.5

Go 1.26.5 是 Go 1.26 主版本的安全和缺陷修复补丁,延续了既定的支持策略,即对受支持的主版本发布关键修复的次要修订。

Go 1.25.12

Go 1.26 从 1.26.1 到 1.26.5 已发布了多个补丁版本,每个版本都包含多个标准库包(crypto/x509、html/template、net/url、os)的安全修复,以及编译器、运行时和工具链的缺陷修复。

Go 1.27rc2

Go 1.27rc2 发布页面因重复错误消息无法加载;实际的发布说明、变更和资源因页面加载问题无法访问。

🔥 头条

从 TypeScript 7 的 Go 重写到 Go 作为智能体语言

文章认为,微软选择用 Go 重写 TypeScript 编译器是务实之举——基于 Go 的简洁性、可读性和共享内存并发模型——这使 Go 成为智能体 AI 时代的理想语言,在这个时代,LLM 需要消耗海量代码,大规模可读性变得至关重要。

📖 文章

提案:go run -c ‘code here’

提供的抓取内容仅为 Google Groups 页面的 JavaScript/HTML 脚手架代码,不包含该提案的实际文本。请提供包含实际提案内容的源 URL 或完整文本,以便我提取关键技术要点。

mmap 与 pread 在真实 Go 存储引擎中的对比

文章通过实验评估了 Go 存储引擎中 mmap 与 pread 系统调用的性能特征,为不同 I/O 模式和数据访问工作负载下如何选择提供了实用指导。

Go 接口、反射与二进制体积

提供的内容并非实际文章——它是作者博客(Wandering Thoughts)的反爬页面,说明该网站屏蔽旧浏览器 User-Agent 以防御针对 LLM 训练的数据爬虫。关于 Go 接口、反射和二进制体积的实际技术内容无法读取。

修复 Kubernetes 1.36 中的 kubelet 内存泄漏

使用 x/sync/singleflight 实现请求合并

Go 的 x/sync/singleflight 包通过合并同一 key 的并发请求来解决惊群问题,只允许一个调用者执行昂贵操作,其他调用者等待并共享同一结果。

Go 1.27 的 encoding/json 基准测试:any 陷阱

Go 1.27 将 encoding/json/v2 设为默认后端,但解码为any时比旧版 v1 慢 28%;使用 v2 的原生带类型结构体则快 1.76 倍,揭示了无类型解码的性能陷阱。

🛠 工具

Goshot:将代码转为截图的 Go 库和 CLI 工具

Goshot 是一个 Go 库和 CLI 工具,可以将代码和终端输出生成为美观的截图,支持语法高亮、可自定义的窗口边框、丰富背景,并提供秘密信息遮盖、Emoji 支持和一键命令输出捕获等功能。

httpSMS:将 Android 手机变为短信网关

httpSMS 是一个开源服务,通过暴露简单的 HTTP API 将 Android 手机变为短信网关,允许用户在虚拟手机号不可用的地区通过手机发送和接收短信。

htmx

htmx 是一个轻量级、无依赖的 JavaScript 库,允许通过 HTML 属性直接实现 AJAX、CSS 过渡、WebSocket 和服务器发送事件,使开发者能够用超文本构建现代 UI,同时将代码库体积比 React 减少 67%。

如何创办 Ruby 聚会的精彩指南

一份实用指南,涵盖了从通过与本地科技公司合作寻找场地到长期维持 Ruby 聚会的方方面面,强调最难的部分就是用最小准备开始行动。

JavaScript 现状调查

文章内容无法访问,返回了安全验证页面(机器人验证)而非实际内容。

Bun

Bun 是一个快速、全能的 JavaScript/TypeScript 工具包,集运行时、打包器、测试运行器和包管理器于一体,旨在实现与 Node.js 的完全兼容,同时可在现有项目中增量采用。

Postgres 如何替代其他系统的目录

对于绝大多数项目而言,Postgres 已经足够胜任缓存、搜索、队列和文档存储,团队应抵制过早引入 Redis、Elasticsearch 或 MongoDB 等独立系统的运维复杂性,直到真正达到网络规模。

htop 中每个数字含义的全面指南

一份指南,解释了 Linux 下 htop/top 中每个显示值的含义,包括负载均值、运行时间,以及如何使用 strace 等工具从 /proc/uptime 和 /proc/loadavg 等 /proc 文件读取系统统计数据。

📝 简讯

Go 1.27 候选发布版 2

提供的内容是 Google Groups 的 JavaScript 脚手架代码,并非实际的 Go 1.27 RC2 公告。该页面的 HTML/压缩 JS 中不包含版本说明、变更日志或 Go 1.27 RC2 的技术细节。

Go 1.26.5 和 1.25.12 已发布

提供的内容仅包含 Google Groups 页面的 JavaScript 脚手架代码,不包含关于 Go 版本发布的实际文章主体。无法生成摘要。

Go 漏洞数据库现标记 golang.org/x/crypto/openpgp 为不安全

Go 漏洞数据库已将 golang.org/x/crypto/openpgp 标记为不安全且不再维护,推荐使用 ProtonMail 维护的分支作为直接替代品。

gopls 0.23.0:Go 官方 LSP 服务器最新版本

gopls 0.23.0 主要专注于全面支持 Go 1.27 候选发布版的功能特性,包括内嵌结构体字段提升的自动补全和改进的内联提示,同时移除了过时的 CLI 子命令和 importsSource 设置,转而使用其内置的导入引擎。

📦 版本

go-mail 0.8:全面的邮件发送库

go-mail 0.8 是一个现代化、功能丰富的 Go 库,用于通过 SMTP 撰写、签名和发送邮件,提供完整的邮件用户代理能力,且主要基于 Go 标准库构建,依赖体积小。

pREST 2.0:从 Postgres 数据库提供 RESTful API

pREST 2.0 是一个基于 Go 的生产级 PostgreSQL REST API 服务器,现在在 /_mcp 端点暴露了只读的 MCP(模型上下文协议)接口,复用了现有的请求管道、部署模型、认证、ACL 和数据库路由。

radsort 1.0:稳定的 LSD 基数排序实现

一个 Go 实现的 radsort 算法实现了稳定的 LSD 基数排序,空间开销为 O(√n),通过将已消费的输入块复用为输出缓冲区,并使用排列数组避免在最终压缩步骤前进行数据拷贝。

River 0.40

River 0.40 引入了数据库迁移 v7,支持 SQLite jsonb 存储、用于 listen/notify 类似功能的 river_notification 表,以及用于处理超时卡住任务的 JobStuckHandler。

Excelize 2.11.0

Excelize 2.11.0,Go 电子表格库,引入了新功能和大量缺陷修复。

GoReleaser 2.17

GoReleaser v2.17 新增了通过 nfpms 的 Windows .msix 打包、通过 nFPM v2.47 的 RISC-V 64 Linux 包支持、发布后验证功能、dockers_v2 中的模板化 Dockerfile,以及 GOARM 浮点 ABI 后缀支持。

GoWebDAV 0.13

GoWebDAV 0.13 是一个纯 Go 的 WebDAV 客户端库,内置认证协商和参考实现,提供目录操作、文件列表以及通过字节数组或流的文件上传/下载 API。


往期精选