// basilisk — 100% 符合 PEP 规范

开源的
Python 类型检查与语言服务器。

唯一在官方 python/typing 符合性套件中取得 100% 满分的 Python 类型检查器 —— 也是我们测过的最快的。使用 Rust 构建的完整开源 Python 开发环境: 类型检查器、语言服务器、调试器、性能分析器 —— 自动补全、跳转到定义、 悬停信息、重构、诊断与集成调试,支持 VS Code、Cursor、Zed 和 Neovim, 无专有锁定。默认严格。

完整 LSP Rust 构建 增量重检 每款编辑器 — VS CodeCursorWindsurfZedNeovim MIT 许可证
100% PEP 符合性 官方 python/typing 套件 141 项测试中通过 141 项 · 0 处误报,对照 python/typing@6ef9f77(2026-07-11)评分
11 ms 冷启动全文件检查 基准用例中位数,实测最快 · 对比 Pyright 582 · mypy 610 · ty 39 · Pyrefly 148 · zuban 27 ms

对照官方 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 的工具。

100% PEP 符合性得分 对照 python/typing@6ef9f77(2026-07-11)评分 — 每次发布自动更新
11 ms 冷启动全文件检查中位数

02 — 实测,而非承诺

我们基准测试过的
最低中位数。

数据来自 make bench——用 hyperfine 在相同的固定用例上对 Pyright、 mypy、ty、Pyrefly 和 zuban 测量挂钟时间,原始 CSV 提交到代码库,网站渲染的正是最后一次实测提交的数据。 在冷启动全文件检查上,Basilisk 的中位数在我们测量的每一款工具中最低——11 ms,对比 Pyright 的 582 ms。 而且由于重检是增量的——只重新分析被编辑的文件及其导入方——热编辑做的工作更少。查看基准测试方法 →

03 — 快速修复与重构

灯泡随时可用。
每条诊断皆如此。

许多诊断都附带一键修复——添加缺失的注解、 将 Optional[X] 现代化为 X | None、转换为 f-string。 此外还有完整的重构套件:提取、内联、更改签名和移动符号。

quick-fix.py
# 💡 快速修复可用
def process(data) # BSK-0001

# → 添加类型注解
def process(data: str) -> str:
  return data.upper()
8 条让类型成为强制的可选规则 属于 17 条可选规则 — 默认关闭,从不计入符合性评分

04 — 超越规范

规范让类型可有可无。
这些规则让它成为强制。

类型规范将未注解的代码视为推断类型而非错误。Basilisk 的 8 条可选严格规则拒绝如此: 要求每个参数、返回值、变量、*args/**kwargs 和类属性都有类型注解, 要求重写方法带 @override,拒绝隐式与显式的 Any,并标记未注解的 lambda。 每一条都默认关闭——可从编辑器或 pyproject.toml 按文件或路径开启,一键快速修复会插入占位注解(: Any-> None),方便您填入真实类型。 它们在符合性评分中从不运行,因此无法虚增得分。查看规则 →

Basilisk 在 VS Code 中逐步调试 —— 在 debug_demo.py 的断点处暂停,变量、监视和调用堆栈面板均已填充,调试工具栏处于激活状态

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 即将推出。 开源。无专有锁定。早期采用者共同塑造路线图。

来源

  1. PEP 符合性。表中数字为官方 python/typing 符合性套件单次运行的全通过得分,该套件在同一测试集上为每款检查器(含 Basilisk)评分。我们将其快照自 python/typing@f051625(Jul 6 2026),并将每个分数链接到该工具的实时结果目录(pyrightmypytypyreflyzuban),因为这些得分会随工具改进而变化。Basilisk 得分 100%(141/141)— 本次运行中唯一达到满分的检查器。作为可复现的交叉验证,我们每次发布还会在自己的二进制上重新运行未经修改的评分器(100%,141/141,对照 python/typing@6ef9f77);两项测量结果一致。
  2. 基准(冷启动全文件检查)。每款工具 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 运行、zubanzuban mypy --strict 运行,以执行测试文件所针对的严格分析。来源 benchmarks/status/darwin-arm64-apple-m4-max.csv;可用 make bench 复现。仅为冷启动全文件,并不反映热增量(LSP)性能。
  3. 实现语言与运行时。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 均为已编译二进制,运行时无需语言运行时。
  4. 语言服务器与编辑器。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 扩展。
  5. 许可证。Basilisk、PyrightmypytyPyrefly 均为 MIT。zuban 为 AGPL-3.0 或付费商业双许可(PyPI 分类:“Other/Proprietary License”)。
  6. 集成调试器。Basilisk 通过语言服务器代理 debugpy(按 F5)。PyrightmypytyPyreflyzuban 均未提供集成调试器——它们都自述为类型检查器和/或语言服务器。
  7. Pyrefly 吞吐量。“1.85 million lines of code per second”来自 pyrefly.org,“Tested using Meta infrastructure (166 cores, 228 GB RAM)”——这是整项目吞吐量数字,与我们的单文件冷启动基准不可直接比较。