日本語版
最新ニュース
科学&テクノロジー

duriantaco/fyn: Fyn は、高速 Python パッケージ管理、依存関係解決、仮想環境、および pyproject.toml ワークフローのためのプライバシー優先の uv フォークです。 · GitHub

Rust で書かれた非常に高速な Python パッケージおよびプロジェクト マネージャー。 フィン は、上に構築された独立した Python パッケージ マネージャーです。 紫外線の基盤からテレメトリが削除され、新機能が追加され、長年のバグが修正されました。見る マニフェスト.md ストーリー全体については。 単一のツールで交換可能 pip、 pip-tools、 pipx、 poetry、 pyenv、 twine、 virtualenv、など。 10 ~ 100 倍高速 pip。 提供します 包括的なプロジェクト管理、ユニバーサルロックファイルを使用します。 内蔵 タスクランナー — プロジェクト タスクを定義して実行する pyproject.toml。 仮想環境をアクティブ化します と fyn shell。…

duriantaco/fyn: Fyn は、高速 Python パッケージ管理、依存関係解決、仮想環境、および pyproject.toml ワークフローのためのプライバシー優先の uv フォークです。 · GitHub

1774272595
2026-03-23 12:37:00

Rust で書かれた非常に高速な Python パッケージおよびプロジェクト マネージャー。

フィン は、上に構築された独立した Python パッケージ マネージャーです。 紫外線の基盤からテレメトリが削除され、新機能が追加され、長年のバグが修正されました。見る
マニフェスト.md ストーリー全体については。

から PyPI:

# With pip.
pip install fyn

# Or pipx.
pipx install fyn

またはソースからビルドします。

cargo install --path crates/fyn

コマンドラインリファレンスドキュメントを参照してください。 fyn help

fyn は、ロックファイル、ワークスペースなどのサポートにより、プロジェクトの依存関係と環境を管理します。 rye または poetry:

$ fyn init example
Initialized project `example` at `/home/user/example`

$ cd example

$ fyn add ruff
Creating virtual environment at: .venv
Resolved 2 packages in 170ms
Installed 2 packages in 1ms
 + ruff==0.5.0

$ fyn run ruff check
All checks passed!

$ fyn lock
Resolved 2 packages in 0.33ms

$ fyn sync
Resolved 2 packages in 0.70ms
Checked 1 package in 0.02ms

タスクを定義します pyproject.toml そしてそれらを実行します fyn run:

[tool.fyn.tasks]
test = "pytest -xvs"
lint = "ruff check ."
format = { cmd = "ruff format .", description = "Format code" }
check = { chain = ["lint", "test"], description = "Lint then test" }

$ fyn run test
# runs pytest -xvs

$ fyn run test -- -k mytest
# extra args are passed through

$ fyn run --list-tasks
Available tasks:
  check    Lint then test
  format   Format code
  lint     ruff check .
  test     pytest -xvs

新しいシェルでプロジェクトの仮想環境をアクティブ化します。

$ fyn shell
success: Activated virtual environment at .venv
Type exit to deactivate.

bash、zsh、fish、nushell、powershell、cmd で動作します。

1 つのコマンドですべてまたは特定の依存関係をアップグレードします。

$ fyn upgrade
info: Upgrading all dependencies...
success: Dependencies upgraded successfully.

$ fyn upgrade requests flask
info: Upgrading: requests, flask
success: Dependencies upgraded successfully.

サポート --dry-run そして --no-sync

fyn は、単一ファイルのスクリプトの依存関係と環境を管理します。

新しいスクリプトを作成し、その依存関係を宣言するインライン メタデータを追加します。

example.py $ fyn add –script example.py リクエスト 更新された `example.py`”>

$ echo 'import requests; print(requests.get("https://example.com"))' > example.py

$ fyn add --script example.py requests
Updated `example.py`

次に、分離された仮想環境でスクリプトを実行します。

fyn run example.py Reading inline script metadata from: example.py Installed 5 packages in 12ms

fyn は、Python パッケージによって提供されるコマンドライン ツールを実行してインストールします。 pipx

次を使用して一時的な環境でツールを実行します。 fynx (別名 fyn tool run):


———— ^__^ (oo)_______ (__) )/ ||—-w | || ||”>

$ fynx pycowsay 'hello world!'
Resolved 1 package in 167ms
Installed 1 package in 9ms
  """

  ------------

  ------------
      ^__^
      (oo)_______
       (__)       )/
           ||----w |
           ||     ||

ツールをインストールする fyn tool install:

$ fyn tool install ruff
Resolved 1 package in 6ms
Installed 1 package in 2ms
 + ruff==0.5.0
Installed 1 executable: ruff

$ ruff --version
ruff 0.5.0

fyn は Python をインストールし、バージョン間の素早い切り替えを可能にします。

複数の Python バージョンをインストールします。

$ fyn python install 3.12 3.13 3.14
Installed 3 versions in 972ms
 + cpython-3.12.12-macos-aarch64-none
 + cpython-3.13.9-macos-aarch64-none
 + cpython-3.14.0-macos-aarch64-none

現在のディレクトリにある特定の Python バージョンを使用します。

$ fyn python pin 3.11
Pinned `.python-version` to `3.11`

fyn は、一般的なもののドロップイン代替品を提供します。 pippip-tools、 そして virtualenv コマンド。

既存のワークフローを変更せずに fyn に移行し、10 ~ 100 倍のスピードアップを体験してください。 fyn pip インタフェース。

要件をプラットフォームに依存しない要件ファイルにコンパイルします。

$ fyn pip compile requirements.in 
   --universal 
   --output-file requirements.txt
Resolved 43 packages in 12ms

仮想環境を作成します。

$ fyn venv
Using Python 3.12.3
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate

ロックされた要件をインストールします。

$ fyn pip sync requirements.txt
Resolved 43 packages in 11ms
Installed 43 packages in 208ms
 + babel==2.15.0
 + certifi==2024.7.4
 ...

キャッシュが際限なく増大しないようにします。

export UV_CACHE_MAX_SIZE=2G

キャッシュが制限を超えると、コマンドごとに最も古いエントリが自動的に削除されます。サポート KMG、 そして T 接尾辞。

環境ごとに異なるロックファイルを使用します。

UV_LOCKFILE=linux.lock fyn lock
UV_LOCKFILE=macos.lock fyn lock

環境変数はインデックス URL で機能します。資格情報を含むプライベート インデックスに役立ちます。

[[tool.fyn.index]]
name = "private"
url = "https://${PYPI_TOKEN}@pypi.example.com/simple/"

明示的なインデックスは推移的な依存関係にも適用されます。すべての内部パッケージを直接の依存関係としてリストする必要はもうありません。

fyn は uv のドロップイン代替品です。同じ構成ファイル、同じ pyproject.toml 設定、同じ
fyn.lock フォーマット、同じ UV_* 環境変数。唯一の変更点はバイナリ名です。

# before
uv sync
uv run pytest
uvx ruff check .

# after
fyn sync
fyn run pytest
fynx ruff check .

私たちはあらゆるレベルの経験を持つ貢献者をサポートすることに情熱を注いでいますので、ぜひプロジェクトに参加していただきたいと思っています。を参照してください。 貢献ガイド 始めるために。

fyn はどのプラットフォームをサポートしていますか?

uv と同じもの: macOS、Linux、Windows (x86_64 と aarch64 にわたる)。

fynはuvと互換性がありますか?

はい。同じ構成フォーマット、同じロックファイル、同じ環境変数。同じプロジェクト上で自由に切り替えることができます。

紫外線と何が違うの?

見る マニフェスト.md 完全な比較については、以下の表を参照してください。

特徴 紫外線 フィン
テレメトリー (ラインホール) OS、Python、CI情報を送信します なし
タスクランナー 利用不可 [tool.fyn.tasks]
shell 指示 利用不可 fyn shell
upgrade 指示 2 つのコマンドをチェーンする必要がある fyn upgrade
キャッシュサイズの制限 制限なし UV_CACHE_MAX_SIZE
カスタムロックファイル名 利用不可 UV_LOCKFILE
推移的なdepsの明示的なインデックス 壊れた 修理済み
インデックス URL の環境変数 要件.txt 内のみ どこでも

fyn の依存関係リゾルバーが使用するもの パブグラブ ボンネットの下で。特に PubGrub のメンテナーに感謝します。 ジェイコブ・フィンケルマン、彼らのサポートのために。

fyn のコアは以下から派生します。 紫外線 アストラル著。

fyn の Git 実装は以下に基づいています 貨物

fyn の最適化の一部は、これまでに見てきた素晴らしい成果からインスピレーションを受けています。 pnpm
造山帯、 そして バン。私たちはナサニエル J. スミスの著書からも多くのことを学びました。 人力車 そしてそのトランポリンを Windows サポート用に調整しました。

fyn は次のいずれかに基づいてライセンスされています。

あなたのオプションで。

お客様が明示的に別段の定めをしない限り、Apache-2.0 ライセンスで定義されているように、お客様が fyn に含めるために意図的に提出した投稿は、追加の条項や条件なしで上記のように二重ライセンスされるものとします。

#duriantacofyn #Fyn #は高速 #Python #パッケージ管理依存関係解決仮想環境および #pyproject.toml #ワークフローのためのプライバシー優先の #フォークです #GitHub

執筆者について: nipponese

Nipponese News編集部は、国内外のニュースを日本語で分かりやすくお届けします。