Why Rust & Python package management? #14721
|
I just saw that v12.4.0 has a support of python and rust package management. I'm interested in why pnpm added that support. I do understand GitHub Actions management, which is widely used in JS projects (still looks like out of scope though). But I don't understand about Rust and Python package managements. I couldn't find discussions about that within implementation PRs and Issues. P.S. I have no intent to deny the implementation; I'm just interested. |
Replies: 2 comments 1 reply
|
The useful way to read this feature is that pnpm is expanding from a JavaScript package installer into a polyglot workspace orchestrator. It is not claiming that Python or Rust packages are npm packages. Modern repositories commonly contain all three ecosystems—for example a TypeScript UI, Python service, and Rust CLI/native component. Before 12.4, teams could use pnpm for JavaScript but still had to coordinate separate dependency installation, affected-project selection, caching, and task execution for the other parts. The 12.4 design makes those workflows share one workspace command and pipeline graph. The release notes show the boundary clearly:
So the main value is not “replace every Python/Rust tool.” It is “give a mixed-language monorepo one reproducible entry point and one task graph,” while still respecting each ecosystem's manifests and registries. A JavaScript-only repository does not need to enable either feature, and a Python/Rust-only team may still prefer uv/Cargo directly. The most compelling users are teams already using pnpm workspaces that also maintain code generators, native binaries, backend services, or CI tasks in Python/Rust. Release notes: https://github.com/pnpm/pnpm/releases/tag/v12.4.0 |
Who decided that? Everything related to transporting code and even versioning code is in scope. If we don't do it others will. Others are already doing it actually publicly or privately. I think you don't realize the pressure that the project is under. Especially since agentic development is a thing. So, yes, pnpm will install rust and python and maybe more in the future. Rust makes sense regardless because pnpm is now written in Rust and I want to use the tool I develop. This will also make installation faster on multilingual repositories as packages from different ecosystems will be downloaded and installed concurrently. Also, I have a feeling that a big chunk of pnpm monorepos will be partially moved to Rust. Converting all backend code to Rust is cheap and makes sense.
I started to feel insecure doing any discussions publicly as other projects are stealing the idea immediately. That is why I am even hesitant publishing a blog post about future plans of pnpm. ps. the description of the repo has been "Fast, disk space efficient package manager" for years, it doesn't say js or node.js package manager. This was always the plan but solving js package management was the hardest task. |
Who decided that? Everything related to transporting code and even versioning code is in scope. If we don't do it others will. Others are already doing it actually publicly or privately. I think you don't realize the pressure that the project is under. Especially since agentic development is a thing.
So, yes, pnpm will install rust and python and maybe more in the future. Rust makes sense regardless because pnpm is now written in Rust and I want to use the tool I develop. This will also make installation faster on multilingual repositories as packages from different ecosystems will be downloaded and installed concurrently. Also, I have a feeling that…