DEV Community

Cover image for Pyrefly: A new rust based Language Server for Python from Meta
Chamal Mallawaarachchi
Chamal Mallawaarachchi

Posted on

Pyrefly: A new rust based Language Server for Python from Meta

Today, Meta has announced the first public beta of their new in-development open source Language Server for Python called Pyrefly.

According to Meta this was started as an in-house tool for their instagram developers as they were experiencing severe performance issues when navigating their codebases with exisiting Python tooling.

While there are other fast language servers like Ruff which doesn't perform static type checking, Pyrefly is aiming to be both faster and feature complete type cheker and a Language Server.

Key Features in the type checker:

  • Type Inference: Pyrefly infers types in most locations, apart from function parameters. It can infer types of variables and return types.
  • Flow Types: Pyrefly can understand your program's control flow to refine static types.
  • Incrementality: Pyrefly aims for large-scale incrementality at the module level, with optimized checking and parallelism.

pyrefly-type-checking

Other than these, Pyrefly supports all the other features of Language Server Protocol (LSP) and generally the first thing you'll feel is the lightning fast autocomplete even in the dense codebases.

NOTE: As of the Beta release in November 2025, Pyrefly is over 70% conformant with the Python Typing Specification. So it might not be a good choice for your complex production codebase yet but I would recommend it for small personal projects. Meta also mentioned that many improvements are needed for third party libraries like Django.

A perormance comparison meta showcased

pyrefly-benchmark-by-meta

Wanna give it a try?

From browser

Meta has created a sandbox that you can jump in from the browser and test Pyrefly.

Pyrefly Sandbox - https://pyrefly.org/sandbox

By installing

Pyrefly is available in PyPI and can be installable from your favourite python package manager.

Below commands show you how can get started using some famous python package and runtime managers.

# using pip
pip install pyrefly
pyrefly init
pyrefly check --summarize-errors

# using conda
conda install -c conda-forge pyrefly
pyrefly init
pyrefly check --summarize-errors

# using uv
uvx pyrefly init
uvx pyrefly check --summarize-errors
Enter fullscreen mode Exit fullscreen mode

IDE extensions?

Yes, Meta already provides IDE extensions for Pyrefly for all major IDEs.

For VSCode, you can easily get it from their marketplace.

pyrefly-vscode-extension

For other code-oss based IDEs like Codium, the extension is available in openvsx.

Openvsx link - https://open-vsx.org/extension/meta/pyrefly

What about GOAT text editors?

Pyrefly is easily installable for Vim/Neovim, Emacs and Helix.

Refer this section - https://pyrefly.org/en/docs/IDE/#other-editors

More information and references

Pyrefly repository - https://github.com/facebook/pyrefly
Pyrefly Documentation - https://pyrefly.org/en/docs

Thank you for reading upto here ❤️.

Top comments (2)

Collapse
 
shemith_mohanan_6361bb8a2 profile image
shemith mohanan

This looks promising. A fast, type-aware language server for Python is something the ecosystem has needed for a long time. I like that Pyrefly aims for both speed and full type-checking—most tools pick only one.
Curious to see how it performs on real-world projects once the typing conformance improves. Have you tried it on any medium-sized codebase yet?

Collapse
 
chamal1120 profile image
Chamal Mallawaarachchi

I only tried it on the new plain python projects. Will do some more testing on existing codebases and put an update.