# pnpmがPythonとRust依存も管理

> pnpm 12.4はnpmパッケージ、Pythonパッケージ、Rust crateを同じワークスペースで導入できますが、各エコシステム固有のマニフェストと規則は維持します。

_Source: pnpm 12.4 official release notes, independently checked against npm registry publication metadata and the distributed Linux executable · 2026-09-12 · 6 min read · Verified against primary sources_

Canonical: https://iyu.app/ja/e/pnpm-12-4-python-cargo-workspaces

## 60秒でわかる

pnpm 12.4はJavaScript、Python、Rustの依存導入を同じワークスペースから調整し、各環境固有のマニフェストとロックファイルは維持します。

**要点**

- Pythonはpyproject.toml、標準pylock.toml、管理された仮想環境を使います。
- RustはCargo.tomlとCargo.lockを維持し、解決したcrateをvendorします。
- ダウンロード、認証、成果物処理、コンテンツアドレス型保存を共通化します。
- 新しいpnpm pipelineは影響範囲選択、タスクグラフ、出力キャッシュを提供します。
- 公式は初期段階と説明し、設定とレイアウトが変わる可能性を示しています。

**結論.** 混合言語monorepoには有望ですが、本番ツールチェーンの即時置換ではなく限定的な試行から始めるべきです。

## 本文

**pnpm 12.4は同じワークスペースでnpm、Python、Rustの依存を調整できます。** `pyproject.toml`、`Cargo.toml`、各ロックファイルを置き換えず、その外側に共通の導入・保存層を加えます。

> **i** pnpmチームはPythonとCargo連携を初期段階とし、設定と生成レイアウトが今後変わる可能性を明記しています。


### 変更点 — 一つのコマンドで三つの依存環境を調整

`pnpm-workspace.yaml`で`python.enabled`または`cargo.enabled`を有効にすると、`pypi:`や`crate:`セレクターで依存を追加し、一度の`pnpm install`で導入できます。npm依存は従来のJavaScript経路を使います。

- **JavaScript:** npmメタデータとpnpmロックファイルを従来どおり使います。
- **Python:** pyproject.tomlと標準pylock.tomlに記録し、プロジェクトごとに.venvを管理します。
- **Rust:** Cargo.tomlとCargo.lockを維持し、解決したcrateをCargo方式でvendorします。

共通層はネットワーク、registry認証、成果物の検証、コンテンツアドレス型ストレージです。リリースノートでは三つの経路でfrozenとoffline導入を利用できるとしています。


### 意味 — 対象はpolyglot monorepo

一つの製品リポジトリにTypeScriptのフロントエンド、Pythonサービス、Rust拡張が同居することがあります。通常はCIで複数のインストーラーとキャッシュを接続します。pnpm 12.4は言語固有の解決規則を残しながら、その配管を調整します。

> 共通化するのは導入の制御面であり、パッケージ形式ではありません。


### もう一つの追加 — pnpm pipelineがタスクグラフを導入

新しい`pnpm pipeline`はfrozen依存を導入し、宣言されたワークスペースタスクを依存順に実行します。影響を受けるプロジェクトの選択、出力キャッシュ、ログ再生に対応し、一つの失敗後も他のエラーを収集できます。

- `inputs`、`outputs`、`env`をキャッシュキーに反映できます。
- `pnpm pipeline --dry-run`はフックを実行せずグラフを表示します。
- Cargoタスクはworktree間でtargetディレクトリを再利用できます。


### 検証 — 成果物は公開済み、成熟度は未確認

- **12.4.0** — 9月8日にnpm registryへ公開
- **12.4.1** — 9月10日に追補版を公開
- **3** — 新しい導入経路が調整する依存環境

iyuはnpm registryのメタデータを確認し、個別配布のLinux x64実行ファイルも取得しました。実行結果は12.4.0です。公開の事実は確認できますが、本番規模での信頼性を示すものではありません。


### 導入前 — 境界を先に試す

- 重要度の低いワークスペースから始め、生成ファイルを確認します。
- frozenとoffline導入を既存CIと比較します。
- registry認証とセキュリティ方針の流れを確認します。
- 調査用にPythonとCargoのネイティブコマンドを残します。

判断基準は全言語ツールを置き換えられるかではなく、初期機能を採用するコスト以上にCIとワークスペースの調整を減らせるかです。


## Primary sources

- [pnpm: pnpm 12.4 release post](https://pnpm.io/blog/releases/12.4)
- [GitHub: pnpm 12.4.0 release notes](https://github.com/pnpm/pnpm/releases/tag/v12.4.0)
- [npm registry: pnpm 12.4.0 package metadata](https://registry.npmjs.org/pnpm/12.4.0)
- [npm registry: pnpm Linux x64 executable 12.4.0](https://registry.npmjs.org/%40pnpm%2Fexe.linux-x64/12.4.0)

---
_Published by iyu (https://iyu.app) — the day's AI news, checked against primary sources and rewritten in plain language. Free to quote with attribution and a link to the canonical URL._
