ty:极其快的 Python 类型检查器和 LSP
Astral 公司(uv 和 Ruff 的开发者)推出了名为 ty 的新工具。
1. 核心定位
ty是一个极快的 Python 类型检查器(Type Checker)和语言服务器(Language Server)。- 它是用 Rust 编写的,旨在替代
mypy、Pyright和Pylance等现有工具。 - 目前处于 Beta 测试阶段,Astral 团队已在内部全面使用,并推荐给有兴趣的用户在生产环境中尝试。
2. 性能优势
- 速度极快:在无缓存的命令行检查中,
ty比mypy和Pyright快 10 倍到 60 倍。 - 增量更新:专为编辑器体验设计,架构围绕“增量计算”构建。例如在 PyTorch 项目中编辑文件后,
ty仅需 4.7 毫秒即可重新计算诊断信息,而 Pyright 需要 386 毫秒。
3. 主要特性
- LSP 支持:提供完整的语言服务器功能(如跳转定义、重命名、自动补全、自动导入等),支持 VS Code 及其他兼容 LSP 的编辑器。
- 更智能的类型系统:支持一等公民的交叉类型(Intersection Types)、高级类型窄化(Type Narrowing)和复杂的代码可达性分析,旨在减少误报并提供更准确的反馈。
- 一流的诊断信息:受 Rust 编译器启发,错误信息非常详细,能跨多个文件提供上下文,解释“为什么”出错以及“如何”修复。
4. 路线图与未来
- 短期目标:明年发布稳定版(Stable),重点在于修复 Bug、完善对 Python 类型规范的支持,以及对 Pydantic 和 Django 等第三方库的一流支持。
- 长期愿景:
ty将成为 Astral 工具链的核心,赋能更高级的语义功能,如死代码消除、未使用的依赖检测、基于类型的 Linting 等。
5. 如何获取
- 开源(MIT 协议)。
- 可以通过
uv安装:uv tool install ty@latest。 - 提供 VS Code 扩展。
文章《Rust 进入 Linux 主流》
核心事件:在东京举行的 Linux 内核维护者峰会(Linux Kernel Maintainers Summit)上,顶级维护者们达成共识。
1. 核心决定:摘掉“实验性”标签
- 官方定调:Linux 内核开发者 Jonathan Corbet 指出,与会者的共识是 Rust 在内核中不再是实验性的,而是内核的核心部分,将正式移除“实验性(experimental)”标签。
- 毫无阻力:内核维护者 Steven Rosted 表示,这一决定在会上“没有遇到任何阻力(zero pushback)”。
- Linus 的态度:文中引用了 Linus Torvalds 最近在韩国开源峰会上的话,他也认为 Rust 已经真正成为了内核的一部分。
2. 发展历程回顾
- 起因(2019):Alex Gaynor 和 Geoffrey Thomas 指出约 2/3 的内核漏洞来自内存安全问题,提议引入 Rust。
- 转折点(2021):Miguel Ojeda 创建了 Rust for Linux 项目;Linus Torvalds 决定采取“观望(wait and see)”态度,给 Rust 一个机会。
- 现状(2025):经过五年的争论和磨合,Rust 的承诺(内存安全)被证明是有效的。截至 2025 年 4 月,内核中包含约 3400 万行 C 代码,而 Rust 代码约为 2.5 万行。
3. 挑战与阻力
- 文章承认过程中存在很大阻力。许多资深 C 语言维护者因为没有时间学习 Rust(如 Video4Linux 维护者 Laurent Pinchart)或担心增加维护负担而表示反对。
- 但现在,虽然 C 语言地位依然稳固且不会消失,但大家预期会有越来越多的**“叶子”驱动程序(leaf drivers)**(如网络、存储、NVMe 等)使用 Rust 编写。
4. 结论
- Rust 在 Linux 内核中的主流化,意味着未来的底层开发职业路径将要求开发者既精通 C 语言,又熟悉 Rust 的安全保障。
阅读:https://thenewstack.io/rust-goes-mainstream-in-the-linux-kernel/
Hotpath:实时性能、内存、数据流 profiler
Hotpath 是一个专为 Rust 语言打造的性能调试与分析工具(Profiler)。它旨在帮助开发者实时深入了解代码的运行状况,特别是针对延迟、内存使用和数据流的分析。
主要功能与特点:
-
实时可视化终端界面 (TUI Dashboard):
- 提供基于终端的图形界面,能够实时展示正在运行的应用程序的各项性能指标。
- 特别适合需要长时间运行的服务端应用(如 Web 服务器),开发者可以在应用运行时直接观察性能特征。
-
全面的性能监控:
- 函数级追踪: 测量函数调用的平均耗时、总耗时、调用次数以及 P95/P99 等长尾延迟数据。
- 内存分析: 追踪每个函数的内存分配字节数和分配次数,帮助发现内存热点。
- 异步与数据流: 专门针对 Rust 的异步特性设计,支持监控 Channels(通道)、Streams(流)和 Futures 的数据流向与吞吐量,能统计 Poll 次数和生命周期。
-
低开销与零成本抽象:
- Zero-cost when disabled: 通过 Rust 的 Feature Flag 机制,当未启用分析功能时,对生产环境代码没有任何性能影响。
- 即使在开启状态下,也针对同步和异步代码进行了优化,保持极低的运行时开销。
-
集成与扩展性:
- CI 集成: 支持集成到 GitHub Actions 等 CI/CD 流程中,自动对比 Pull Request 与主分支的性能基准。
- 自定义报告: 允许开发者将分析数据导出为 CSV、JSON,或通过
tracingcrate 集成到现有的日志系统中。
适用场景: 当你需要找出 Rust 程序中的性能瓶颈(Bottlenecks),特别是涉及复杂的异步逻辑、通道通信或内存分配问题,但又不想使用沉重的系统级 Profiler 时,Hotpath 是一个轻量且直观的选择。
仓库:https://github.com/pawurb/hotpath-rs
GitPow:开源且跨平台的 Git GUI 客户端
GitPow 是一个全新的、完全开源且跨平台的 Git GUI 客户端,由开发者 Mark Rai 作为个人兴趣项目发起。它旨在填补传统 Git 客户端的一些功能空白,并提供一个免费的替代方案(对标 GitKraken 或 SourceTree,但没有付费限制)。
核心特点:
-
完全开源免费:
- 致力于提供真正的免费体验,没有任何“付费才能管理私有仓库”的限制。
-
独特的视觉化体验:
- “Git 地图”:受游戏《Mini Metro》(迷你地铁)启发,提供可触摸导航的垂直和水平提交历史图谱,支持缩放和平移。
- 图片 Diff 预览:可以直接查看图片文件的变更对比(尺寸或内容变化),这是许多客户端缺失的功能。
- 时间维度管理:支持按月/年对 Commit 进行分组展示,通过“多少次提交前引入”来追踪文件历史,并能快速跳转到文件的初始版本。
-
技术栈:
- 后端:使用 Rust 编写,保证核心逻辑的高性能。
- 框架:基于 Tauri 构建,实现了跨平台(Windows, Linux, macOS)支持,且相比 Electron 更轻量。
- 前端:使用 JavaScript/HTML/CSS,并利用 WebAssembly (WASM) 来处理复杂的图形可视化渲染。
-
项目状态:
- 目前处于活跃开发阶段(近期发布了 v0.1.x 版本)。
- 开发者坦诚在处理超大规模仓库(如 Linux Kernel)时仍面临性能挑战,正在持续优化状态管理和缓存策略。
总之,GitPow 是一个注重用户体验和视觉交互的现代化 Git 客户端,适合那些寻找免费、轻量且具备高级可视化功能的开发者尝试。
--
From 日报小组 苦瓜小仔
社区学习交流平台订阅:
评论区
写评论还没有评论