开源的
Python 类型检查与语言服务器。
唯一在官方 python/typing 符合性套件中取得
100% 满分的 Python 类型检查器
—— 也是我们测过的最快的。使用 Rust 构建的完整开源 Python 开发环境:
类型检查器、语言服务器、调试器、性能分析器 —— 自动补全、跳转到定义、
悬停信息、重构、诊断与集成调试,支持 VS Code、Cursor、Zed 和 Neovim,
无专有锁定。默认严格。
对照官方 python/typing 套件与已提交的基准 CSV 自测。
我们如何衡量符合性 →
完整基准测试与方法 →
对比情况
您期待的一切功能。
完全开源。
功能完整的开源语言服务器,无专有锁定。 而且在我们自己的冷启动基准测试中,它的中位数在所有检查器里最低:冷启动全文件检查中位数仅 11 ms,对比 Pyright 的 582 ms,以及用 Rust 编写的 ty、Pyrefly 和 zuban。 下方每一项竞品声明都链接到该工具自己的文档——基准测试方法详述了这些数字的测量方式。
| 功能 | Basilisk | Pyright | mypy | ty | Pyrefly | zuban | pycroscope |
|---|---|---|---|---|---|---|---|
| PEP 符合性 ¹ | 100% (141/141) | 96.8% | 77.3% | 82.3% | 97.9% | 99.6% | 92.2% |
| 冷启动全文件检查 (中位数) | 11 ms | 582 ms | 610 ms | 39 ms | 148 ms | 27 ms | — |
| 实现语言 | Rust | TypeScript | Python/C | Rust | Rust | Rust | Python |
| 需要运行时 | 无 | Node.js | Python | 无 | 无 | 无 | Python |
| 完整 LSP(补全、悬停、跳转) | ✓ | ✓ | — | ✓ | ✓ | ✓ | — |
| 集成调试器 ² | ✓ | — | — | — | — | — | — |
| 官方编辑器扩展 | VS Code、Cursor、Zed、Neovim (JetBrains 即将推出) | Pylance · LSP | linter 插件 | VS Code、PyCharm、Neovim | VS Code、Neovim、Zed | VS Code (ZubanLS) | — |
| 许可证 | MIT | MIT | MIT | MIT | MIT | AGPL-3.0 / 商业 | Apache-2.0 |
PEP 符合性一行:取自官方
python/typing 符合性套件
的全通过得分 — 同一次运行为每个工具(含 Basilisk)评分。快照自
python/typing@f051625
(Jul 6 2026);每个分数均链接至该工具的实时结果目录,因为这些数字会随工具改进而变化。Basilisk 是唯一达到 100% 的检查器。
01 — 符合规范优先
100% 符合类型规范。
锚定到确切的提交。
由官方 python/typing 符合性套件评分——同一套公开工具也为
Pyright、mypy 和 Pyrefly 打分——在真实二进制文件上运行,启用每一条符合性规则、不禁用任何规则:
21 个类别中有 21 个达到 100%,误报 0 处、遗漏的必需错误 0 处。
每次发布都会从 python/typing@main 重新拉取套件并要求满分才能发布,因此该数字可复现——
绝非手工填写——且始终对照下方所示的确切提交评分。
Basilisk 现已收录于官方 python/typing 结果 — 与所有其他检查器在同一次运行中评分,它是唯一达到满分 100% 的检查器,领先于 Microsoft、Meta 和 Astral 的工具。
02 — 实测,而非承诺
我们基准测试过的
最低中位数。
数据来自 make bench——用 hyperfine 在相同的固定用例上对 Pyright、
mypy、ty、Pyrefly 和 zuban 测量挂钟时间,原始 CSV 提交到代码库,网站渲染的正是最后一次实测提交的数据。
在冷启动全文件检查上,Basilisk 的中位数在我们测量的每一款工具中最低——11 ms,对比 Pyright 的 582 ms。
而且由于重检是增量的——只重新分析被编辑的文件及其导入方——热编辑做的工作更少。查看基准测试方法 →
03 — 快速修复与重构
灯泡随时可用。
每条诊断皆如此。
许多诊断都附带一键修复——添加缺失的注解、
将 Optional[X] 现代化为 X | None、转换为 f-string。
此外还有完整的重构套件:提取、内联、更改签名和移动符号。
# 💡 快速修复可用 def process(data) # BSK-0001 # → 添加类型注解 def process(data: str) -> str: return data.upper()
04 — 超越规范
规范让类型可有可无。
这些规则让它成为强制。
类型规范将未注解的代码视为推断类型而非错误。Basilisk 的 8 条可选严格规则拒绝如此:
要求每个参数、返回值、变量、*args/**kwargs 和类属性都有类型注解,
要求重写方法带 @override,拒绝隐式与显式的 Any,并标记未注解的 lambda。
每一条都默认关闭——可从编辑器或 pyproject.toml 按文件或路径开启,一键快速修复会插入占位注解(: Any、-> None),方便您填入真实类型。
它们在符合性评分中从不运行,因此无法虚增得分。查看规则 →
05 — 集成调试
按 F5 开始调试。
Basilisk 处理其余的。
设置断点、逐步执行代码、检查变量——全部通过 Basilisk LSP 代理。 Rust 服务器在空闲 TCP 端口上启动 debugpy 并自动连接 VS Code 的 DAP 客户端。 无需手动配置。无需单独的调试扩展。只需按 F5。
06 — 单一二进制文件
放入 PATH。
这就是全部安装。
编译为独立的 Rust 二进制文件。无需 Node.js。无需 Python 解释器。
无需 pip install。无需 npm install。
从单次下载即可在 macOS、Linux 和 Windows 上运行。
# macOS / Linux (Homebrew) brew install Nimblesite/tap/basilisk # Windows (Scoop) scoop install basilisk # 然后直接运行 basilisk check src/
开源。
默认符合规范。
类型检查器、LSP 服务器和编辑器 扩展今天即可使用——自动补全、跳转到定义、 悬停信息、诊断、重构、F5 调试和性能分析—— 支持 VS Code、Cursor、Windsurf、Zed 和 Neovim。JetBrains 即将推出。 开源。无专有锁定。早期采用者共同塑造路线图。
来源
- PEP 符合性。表中数字为官方 python/typing 符合性套件单次运行的全通过得分,该套件在同一测试集上为每款检查器(含 Basilisk)评分。我们将其快照自 python/typing@
f051625(Jul 6 2026),并将每个分数链接到该工具的实时结果目录(pyright、mypy、ty、pyrefly、zuban),因为这些得分会随工具改进而变化。Basilisk 得分 100%(141/141)— 本次运行中唯一达到满分的检查器。作为可复现的交叉验证,我们每次发布还会在自己的二进制上重新运行未经修改的评分器(100%,141/141,对照 python/typing@6ef9f77);两项测量结果一致。 - 基准(冷启动全文件检查)。每款工具 CLI 针对相同单一构造测试文件、10 次
hyperfine运行的平均挂钟时间,测量于 Apple M4 Max(Darwin 25.5.0,arm64,14 核心),生成于 2026-07-11T14:40:45+1000。所有工具在同一次运行中冷启动测量——basilisk dev (cc78164c-dirty)、pyright 1.1.408、mypy 1.19.1、ty 0.0.19、pyrefly 0.54.0、zuban 0.9.0。mypy以--strict运行、zuban以zuban mypy --strict运行,以执行测试文件所针对的严格分析。来源benchmarks/status/darwin-arm64-apple-m4-max.csv;可用make bench复现。仅为冷启动全文件,并不反映热增量(LSP)性能。 - 实现语言与运行时。ty:“An extremely fast Python type checker and language server, written in Rust.”Pyrefly:Meta 的公告标题即“Open-sourcing Pyrefly: A faster Python type checker written in Rust.”zuban:“a high-performance Python Language Server and type checker implemented in Rust, by the author of Jedi.”Pyright(TypeScript)要求安装“node (which Pyright requires).”mypy:“Mypy is itself compiled using mypyc”(Python 编译为 C 扩展),通过
pip安装(需 Python)。ty、Pyrefly、zuban 与 Basilisk 均为已编译二进制,运行时无需语言运行时。 - 语言服务器与编辑器。Pyright 提供开源语言服务器(
pyright-langserver --stdio),可用于任何 LSP 编辑器;微软文档指出“core type checking functionality is associated with Pyright while language service functionality is associated with Pylance”——即专有的 Pylance VS Code 扩展。mypy 的编辑器插件以 linter 方式运行它(并非语言服务器)。ty:“Editor integrations for VS Code, PyCharm, Neovim and more.”Pyrefly:“an extension for popular IDEs and editors such as VSCode, Neovim, Zed, and more.”zuban:“Most important LSP features are supported… completions, goto, references, rename, hover…”,官方 ZubanLS 扩展。 - 许可证。Basilisk、Pyright、mypy、ty 与 Pyrefly 均为 MIT。zuban 为 AGPL-3.0 或付费商业双许可(PyPI 分类:“Other/Proprietary License”)。
- 集成调试器。Basilisk 通过语言服务器代理 debugpy(按 F5)。Pyright、mypy、ty、Pyrefly 或 zuban 均未提供集成调试器——它们都自述为类型检查器和/或语言服务器。
- Pyrefly 吞吐量。“1.85 million lines of code per second”来自 pyrefly.org,“Tested using Meta infrastructure (166 cores, 228 GB RAM)”——这是整项目吞吐量数字,与我们的单文件冷启动基准不可直接比较。