Published Jun 26, 2024

SE Radio 622: Wolf Vollprecht on Python Tooling in Rust

Wolf Vollprecht delves into the intersection of Rust and Python tooling, showcasing the memory safety and performance benefits of Rust, while navigating its compilation challenges. The episode emphasizes innovative solutions for package management, cross-platform binaries, and reproducible builds, particularly spotlighting the PKCE package manager for enhanced infrastructure tooling and compatibility.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • PKCE Management

    introduces PKCE as a modern workflow manager and package manager for the Conda ecosystem, implemented in Rust. It allows developers to manage projects across Windows, macOS, and Linux using operating system agnostic packages, ensuring seamless integration with the Python ecosystem 1. PKCE simplifies continuous integration by allowing developers to specify tasks and dependencies in a Pixie tunnel or Pyproject toml file, eliminating the need for complex GitHub actions scripts 2.

    My dream is that for most projects, you wouldn't really have to write a GitHub actions file anymore.

    ---

    This approach ensures consistency between local and CI environments, enhancing the development workflow.

       

    Integration

    The integration of Rust-based tools with existing Python tools like Conda and Mamba is pivotal for modern package management. explains that Conda and Mamba, with their binary package support, have a rich history in the scientific Python ecosystem, facilitating compatibility across platforms 3. PKCE extends this by packaging Python and other tools, ensuring reproducible builds across different systems 4.

    Conda was one of the first package managers that basically brought binary packages to the Python ecosystem.

    ---

    This ensures that scientific applications behave consistently, regardless of the operating system.

       

    Tool Usage

    Installing and using PKCE in Python projects is straightforward, with options like using brew or a simple curl command for installation. highlights that PKCE can initialize projects using a Pixie toml file, allowing developers to define tasks and dependencies, including specifying Python versions 5. The choice of Rust for PKCE's development was driven by its rich ecosystem and performance benefits over C, making it easier to build robust tools without dealing with segmentation faults 6.

    It was not initially completely obvious decision, because I already had a lot of experience with C and Mamba, and we could have sticked to the C ecosystem.

    ---

    This decision underscores the advantages of Rust in developing efficient and reliable software tools.

Related Episodes