{"version":"1.2.0","author":"Matthias Endler","title":"uv with Charlie Marsh","podcastName":"Rust in Production","chapters":[{"title":"Start","startTime":0.0},{"title":"Introduction to Rust in Production","startTime":8.0},{"title":"Astral's Developer Tools for Python","startTime":106.0},{"title":"The Growth of Ruff and UV","startTime":149.0},{"title":"Building a Python Toolchain","startTime":300.0},{"title":"Learning Rust Through Projects","startTime":583.0},{"title":"Best Practices in Rust Development","startTime":883.0},{"title":"The Complexity of Requirements Parsing","startTime":1134.667},{"title":"Navigating Pip's Source Code","startTime":1358.667},{"title":"Continuous Integration and Testing","startTime":1600.667},{"title":"Challenges with System Dependencies","startTime":1818.667},{"title":"Benchmarking Rust Code","startTime":2077.667},{"title":"Async Programming in Rust","startTime":2340.667},{"title":"The Decision to Use Async Rust","startTime":2743.667},{"title":"The Evolution of the Rust Ecosystem","startTime":3250.667},{"title":"Handwritten Parsers vs. Parser Generators","startTime":3353.667},{"title":"The Benefits of a Custom Parser","startTime":3561.667},{"title":"Conclusion and Reflections on Rust","startTime":3858.667},{"title":"Closing Remarks and Community Impact","startTime":4500.667}]}