Ruff is a Python tooling tool that can replace Flake8, isort, and Black, offering over 700 rules for linting and formatting. It is built using Rust, making it significantly faster than traditional Python tools. Ruff simplifies the toolchain by bundling multiple functionalities into one tool, reducing the need to learn and manage multiple disparate tools.
UV is a Rust-based tool that serves as a faster alternative to pip, pip-tools, and virtualenv. It uses a global cache to store packages, reducing disk space and speeding up installations through symlinking and copy-on-write techniques. While it is not as abstracted as tools like Poetry or PDM, it provides a more performant and unified experience for managing Python dependencies and environments.
Rust was chosen for its speed and performance benefits, which are crucial for improving the efficiency of Python tooling. The trend of using Rust in other programming ecosystems, such as JavaScript, inspired its adoption. Rust's ability to integrate with Python allows for the creation of faster and more robust tools, addressing the performance bottlenecks in traditional Python toolchains.
Astral is a venture-backed company founded by Charlie Marsh, focused on building high-performance Python tooling. Its mission is to create unified and faster Python tools, such as Ruff and UV, and to bring more innovation and experimentation into the Python ecosystem. Astral aims to provide a cohesive experience where users can bootstrap Python and access all necessary tools from a single binary.
UV uses a global cache to store packages, which allows it to link the same package across multiple projects instead of downloading or copying it repeatedly. This approach, using symlinking and copy-on-write, significantly reduces installation time and disk space usage. It contrasts with pip's caching mechanism, which often involves redundant downloads and storage of packages.
Astral plans to expand UV's capabilities to include bootstrapping and managing Python versions, allowing users to download and install Python directly through UV. This feature aims to simplify the process of setting up Python environments and ensure compatibility with the required Python versions for projects. Additionally, Astral is focusing on improving editor integrations and making the UV roadmap more public for community feedback.
Ruff includes a built-in formatter called Ruff Format, which is largely compatible with Black. While it does not aim to innovate on code style, it focuses on providing a faster and more unified experience. Users can configure Ruff to handle both linting and formatting, reducing the need to learn and manage separate tools like Black and Flake8.
Charlie Marsh faced a steep learning curve transitioning into the Python open-source community, as he had not previously been an active participant. He had to learn how to be a maintainer, engage in PEP discussions, and build relationships within the ecosystem. This shift was a significant change from his previous roles as a Python user in various companies.
Astral currently does not generate revenue and is venture-backed. The company plans to build services on top of its open-source tools, such as private package hosting or CI/CD solutions, that integrate seamlessly with Ruff and UV. These services will remain optional, ensuring that the core tools stay open source and free for all users.
UV stands for 'ultraviolet,' which ties into Astral's branding by referencing light and celestial themes. The name was chosen for its brevity and ease of typing, as it is short and located near the home row on keyboards. Unlike Ruff, which predates Astral, UV was intentionally named to align with the company's brand identity.
Charlie Marsh and team are using Rust to make Python tooling faster.
ruff
and uv
is just the start.Since uv is the newest tool, there's quite a bit of the discussion diving into uv.
Links:
** Learn pytest**