Hey everyone, I've put together a brief investigation on using Rust-backed alternatives to common Python tools for linting and type checking, using the Beam repository's Python Linting PreCommit as the testing ground:
https://s.apache.org/beam-python-rust-tooling The main points: - Current linting and static type checking libraries (pylint, flake8, mypy) are replaceable through pyrefly and ruff (with the sole exception of isort, which has a large amount of extra configuration in the repository that ruff cannot replicate yet.) - Swapping to the Rust-based tools cuts our linting workflow runtimes by about half (saving ~36 days of runtime over 2025) - Anecdotally, local use is also much faster and removes a common bottleneck for developer velocity I recommend moving Beam Python to these tools; however, I am interested in what the broader Beam community thinks about the change. Please take a look and let me know your thoughts. Thanks, Jack McCluskey -- Jack McCluskey SWE - DataPLS PLAT/ Dataflow ML RDU [email protected]
