A fast static code analyzer and language server for Python, written in Rust, offering type checking and rich editor integration.
Pylyzer is a static code analyzer and language server for Python that performs type checking and provides rich editor integration. It is written in Rust for high performance and uses the type system of the Erg programming language internally to analyze Python ASTs. It solves the need for fast, readable static analysis and type feedback in Python development environments.
Python developers and teams seeking a performant static analysis tool for type checking and enhanced IDE features like autocompletion and refactoring. It is particularly useful for those working on larger codebases where speed and clarity of diagnostics are critical.
Developers choose Pylyzer for its exceptional speed—over 100 times faster than some alternatives—and its clear, actionable error reports. Its integration as a full-featured language server provides a seamless development experience with advanced editor capabilities, all built on a robust Rust foundation.
A fast, feature-rich static code analyzer & language server for Python
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Analyzes Python code over 100 times faster than alternatives like pytype and pyright, as shown in benchmarks, due to its efficient Rust implementation.
Provides readable error reports with precise location indicators, contrasting with the illegible outputs from tools like pyright, improving debugging efficiency.
Offers rich language server support including completion, renaming, hover, and goto definition, adapted from the Erg Language Server for seamless editor integration.
Performs static type checking and inference for variables, functions, and classes, supporting many Python typing constructs like Union, Optional, and Callable.
The project is under maintenance with no new features being added, and the author recommends astral-sh/ty instead, indicating reduced future support and potential obsolescence.
Missing support for key features like async/await, user-defined abstract classes, and several typing module constructs such as TypedDict and Protocol, as listed in TODOs.
Due to conservative type checking, Pylyzer may produce many errors that are potentially false positives, which can clutter the development experience and require manual filtering.