< 返回版块

苦瓜小仔 发表于 2025-12-17 14:54

Tags:日报

ty:极其快的 Python 类型检查器和 LSP

Astral 公司(uvRuff 的开发者)推出了名为 ty 的新工具。

1. 核心定位

  • ty 是一个极快的 Python 类型检查器(Type Checker)和语言服务器(Language Server)。
  • 它是用 Rust 编写的,旨在替代 mypyPyrightPylance 等现有工具。
  • 目前处于 Beta 测试阶段,Astral 团队已在内部全面使用,并推荐给有兴趣的用户在生产环境中尝试。

2. 性能优势

  • 速度极快:在无缓存的命令行检查中,tymypyPyright10 倍到 60 倍
  • 增量更新:专为编辑器体验设计,架构围绕“增量计算”构建。例如在 PyTorch 项目中编辑文件后,ty 仅需 4.7 毫秒即可重新计算诊断信息,而 Pyright 需要 386 毫秒。

3. 主要特性

  • LSP 支持:提供完整的语言服务器功能(如跳转定义、重命名、自动补全、自动导入等),支持 VS Code 及其他兼容 LSP 的编辑器。
  • 更智能的类型系统:支持一等公民的交叉类型(Intersection Types)、高级类型窄化(Type Narrowing)和复杂的代码可达性分析,旨在减少误报并提供更准确的反馈。
  • 一流的诊断信息:受 Rust 编译器启发,错误信息非常详细,能跨多个文件提供上下文,解释“为什么”出错以及“如何”修复。

4. 路线图与未来

  • 短期目标:明年发布稳定版(Stable),重点在于修复 Bug、完善对 Python 类型规范的支持,以及对 PydanticDjango 等第三方库的一流支持。
  • 长期愿景ty 将成为 Astral 工具链的核心,赋能更高级的语义功能,如死代码消除、未使用的依赖检测、基于类型的 Linting 等。

5. 如何获取

  • 开源(MIT 协议)。
  • 可以通过 uv 安装:uv tool install ty@latest
  • 提供 VS Code 扩展。

阅读:https://astral.sh/blog/ty

文章《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)。它旨在帮助开发者实时深入了解代码的运行状况,特别是针对延迟、内存使用和数据流的分析。

主要功能与特点:

  1. 实时可视化终端界面 (TUI Dashboard):

    • 提供基于终端的图形界面,能够实时展示正在运行的应用程序的各项性能指标。
    • 特别适合需要长时间运行的服务端应用(如 Web 服务器),开发者可以在应用运行时直接观察性能特征。
  2. 全面的性能监控:

    • 函数级追踪: 测量函数调用的平均耗时、总耗时、调用次数以及 P95/P99 等长尾延迟数据。
    • 内存分析: 追踪每个函数的内存分配字节数和分配次数,帮助发现内存热点。
    • 异步与数据流: 专门针对 Rust 的异步特性设计,支持监控 Channels(通道)、Streams(流)和 Futures 的数据流向与吞吐量,能统计 Poll 次数和生命周期。
  3. 低开销与零成本抽象:

    • Zero-cost when disabled: 通过 Rust 的 Feature Flag 机制,当未启用分析功能时,对生产环境代码没有任何性能影响。
    • 即使在开启状态下,也针对同步和异步代码进行了优化,保持极低的运行时开销。
  4. 集成与扩展性:

    • CI 集成: 支持集成到 GitHub Actions 等 CI/CD 流程中,自动对比 Pull Request 与主分支的性能基准。
    • 自定义报告: 允许开发者将分析数据导出为 CSV、JSON,或通过 tracing crate 集成到现有的日志系统中。

适用场景: 当你需要找出 Rust 程序中的性能瓶颈(Bottlenecks),特别是涉及复杂的异步逻辑、通道通信或内存分配问题,但又不想使用沉重的系统级 Profiler 时,Hotpath 是一个轻量且直观的选择。

文档:https://hotpath.rs/

仓库:https://github.com/pawurb/hotpath-rs

GitPow:开源且跨平台的 Git GUI 客户端

GitPow 是一个全新的、完全开源且跨平台的 Git GUI 客户端,由开发者 Mark Rai 作为个人兴趣项目发起。它旨在填补传统 Git 客户端的一些功能空白,并提供一个免费的替代方案(对标 GitKraken 或 SourceTree,但没有付费限制)。

核心特点:

  1. 完全开源免费

    • 致力于提供真正的免费体验,没有任何“付费才能管理私有仓库”的限制。
  2. 独特的视觉化体验

    • “Git 地图”:受游戏《Mini Metro》(迷你地铁)启发,提供可触摸导航的垂直和水平提交历史图谱,支持缩放和平移。
    • 图片 Diff 预览:可以直接查看图片文件的变更对比(尺寸或内容变化),这是许多客户端缺失的功能。
    • 时间维度管理:支持按月/年对 Commit 进行分组展示,通过“多少次提交前引入”来追踪文件历史,并能快速跳转到文件的初始版本。
  3. 技术栈

    • 后端:使用 Rust 编写,保证核心逻辑的高性能。
    • 框架:基于 Tauri 构建,实现了跨平台(Windows, Linux, macOS)支持,且相比 Electron 更轻量。
    • 前端:使用 JavaScript/HTML/CSS,并利用 WebAssembly (WASM) 来处理复杂的图形可视化渲染。
  4. 项目状态

    • 目前处于活跃开发阶段(近期发布了 v0.1.x 版本)。
    • 开发者坦诚在处理超大规模仓库(如 Linux Kernel)时仍面临性能挑战,正在持续优化状态管理和缓存策略。

总之,GitPow 是一个注重用户体验和视觉交互的现代化 Git 客户端,适合那些寻找免费、轻量且具备高级可视化功能的开发者尝试。

--

From 日报小组 苦瓜小仔

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页