Up until a few years ago, Python tooling was a nightmare: basic tasks like installing packages or managing Python versions was a pain. The tools were brittle and did not work well together.
Then, suddenly, we saw a renaissance of new ideas in the Python ecosystem. It started with Poetry and pipx and continued with tooling written in Rust like rye, which later got incorporated into Astral.Astral in particular contributed a very important piece to the puzzle: uv -- an extremely fast Python package and project manager that supersedes all previous attempts; For example, it is 10x-100x faster than pip.
In this episode I talk to Charlie Marsh, the Founder and CEO of Astral. We talk about Astral's mission and how Rust plays an important role in it.
About AstralAstral is a company that builds tools for Python developers. What sounds simple is actually a very complex problem: Python's ecosystem is huge, but fragmented and often incompatible. Astral’s mission is to make the Python ecosystem more productive by building high-performance developer tools, starting with Ruff. In their words: "Fast, unified, futuristic."
About Charlie MarshCharlie is a long-time open source developer and entrepreneur. He has an impressive CV, graduating with highest honors from Princeton University. After that, he worked at Khan Academy and others before eventually founding Astral in '22. Charlie is an engaging speaker and a great communicator.
Links From The Episode- ruff - Python static linter and formatter written in Rust
- uv - Python package and project manager written in Rust
- rustfmt - Rust code formatter
- clippy - Linter for Rust code
- The Rust Programming Language: Cargo Workspaces - The Rust Book's chapter on workspaces
- pip - Package Installer for Python
- pip documentation: Requirements File Format - A description of the format of requirements.txt, including a list of embedded CLI options
- uv's CI - Build scripts for many different platforms
- jemalloc - Alternative memory allocator
- zlib-ng - Next Generation zlib implementation in C
- reqwest - An easy and powerful Rust HTTP Client
- zlib-rs - Pure Rust implementation of zlib
- XCode Instruments - Native macOS performance profiler
- CodSpeed - Continuous benchmarking in CI
- hyperfine - "macro benchmarking" tool, coincidentally written in Rust
- samply - Sampling based profiler written in Rust
- cargo flamegraph - Cargo profiling plugin
- tokio - Asynchronous runtime for Rust
- curl-rust - Network API used in cargo
- tar-rs - Sync tar crate
- async-tar - Async tar crate based on the async_std runtime
- tokio-tar - Async tar crate based on tokio
- astral-tokio-tar - Async tar crate based on tokio, maintained by Astral
- RustPython - Python interpreter written in Rust
- lalrpop - The parser generator used by RustPython
- Charlie's EuroRust 2024 Talk - Mentions the version number parser at 18:45
- ripgrep - Andrew Gallant's idiomatic Rust project, which also happens to be a very fast CLI file search tool
Official Links- Astral
- Charlie's Website
- Charlie on GitHub