[{"data":1,"prerenderedAt":109},["ShallowReactive",2],{"en-post-122":3},{"id":4,"title":5,"body":6,"description":92,"extension":102,"meta":103,"navigation":104,"path":105,"seo":106,"stem":107,"__hash__":108},"content/post/122.md","122",{"type":7,"value":8,"toc":91},"minimark",[9,14,18,22,30,34,44,48,51,55,58,62,77],[10,11,13],"h3",{"id":12},"what-it-does","What It Does",[15,16,17],"p",{},"Ruff is a Python linter and formatter written in Rust. Its goal is to cover a large amount of static analysis and code cleanup through one unified interface. It ships more than 900 built-in rules, reimplements popular plugins like flake8-bugbear out of the box, and provides drop-in replacements for Flake8, isort, and Black, along with caching and autofix. In one sentence, it wants to fold what used to take a pile of Python quality tools into a single binary.",[10,19,21],{"id":20},"the-problem-it-solves","The Problem It Solves",[15,23,24,25,29],{},"The traditional Python toolchain means assembling Flake8 (plus dozens of plugins), Black, isort, pydocstyle, pyupgrade, autoflake, and more. Startup is slow, dependencies are messy, and configuration is fragmented; a newcomer can spend half a day just getting the suite to run on a project. Ruff rewrote the core in Rust and folded those tools into one binary, running 10 to 100 times faster than individual tools while supporting ",[26,27,28],"code",{},"pyproject.toml",", layered and cascading configuration, and Monorepo-friendly setups. For teams, it means one configuration can unify the whole group's style and checks instead of arguing over whose plugin version is out of date, which is a quieter but real source of friction in many codebases.",[10,31,33],{"id":32},"language-and-architecture","Language and Architecture",[15,35,36,37,40,41,43],{},"The analysis and formatting engine is written in Rust and distributed through Python bindings with ",[26,38,39],{},"pip",", offering both a command line and editor integrations such as VS Code. Features include pip installation, ",[26,42,28],{}," support, Python 3.15 compatibility, a built-in cache to skip repeated analysis, autofix, more than 900 rules, and layered and cascading configuration. The repository was created on August 9, 2022, has been adopted by large open source projects like Apache Airflow, Apache Superset, FastAPI, Hugging Face, and Pandas, and has accumulated about 51,000 stars, a textbook case of going from \"fast\" to \"de facto standard.\"",[10,45,47],{"id":46},"license","License",[15,49,50],{},"MIT.",[10,52,54],{"id":53},"why-it-is-popular-right-now","Why It Is Popular Right Now",[15,56,57],{},"The Python ecosystem has a long-standing need for \"fast and complete\" tooling. Ruff, with Rust's performance and all-in-one integration, became a standard-grade replacement, and it keeps pulling stars as AI-assisted programming and large Python projects grow. It gained roughly 350 stars that day. Its rise also shows that developers will pay for a one-size-fits-all \"faster, fewer dependencies\" even if they have to accept a relatively young ecosystem, because the daily friction it removes compounds across every file they touch.",[10,59,61],{"id":60},"project-links","Project Links",[15,63,64,65,68,69,72,73,76],{},"GitHub repository ",[26,66,67],{},"https://github.com/astral-sh/ruff",", docs ",[26,70,71],{},"https://docs.astral.sh/ruff",", online playground ",[26,74,75],{},"https://play.ruff.rs",".",[15,78,79,80,85,86,90],{},"If you write code day to day, also see our pieces on ",[81,82,84],"a",{"href":83},"/post/107/","VS Code"," (Ruff ships an official VS Code extension) and ",[81,87,89],{"href":88},"/post/106/","Zed"," (another high-performance editor built in Rust) to understand why the Rust toolchain has been so popular these two years.",{"title":92,"searchDepth":93,"depth":93,"links":94},"",2,[95,97,98,99,100,101],{"id":12,"depth":96,"text":13},3,{"id":20,"depth":96,"text":21},{"id":32,"depth":96,"text":33},{"id":46,"depth":96,"text":47},{"id":53,"depth":96,"text":54},{"id":60,"depth":96,"text":61},"md",{},true,"/post/122",{"description":92},"post/122","mYkKYXzLGFqADEkPcK8F6yv8-WB_05aXVHB7D5r9iLk",1794378304627]