A **fyn** egy rendkívül gyors Python csomag- és projektkezelő, amely Rust nyelven íródott. A projekt az **uv** független közösségi forkjaként indult, de mára saját parancsokat, beállításokat, alapértelmezéseket és viselkedést fejlesztett ki, miközben csökkentette a csomagindexek felé küldött kérések metaadatait, új funkciókat adott hozzá és régóta fennálló hibákat javított. A **fyn** egyetlen eszközként helyettesítheti a **pip**, **pip-tools**, **pipx**, **poetry**, **pyenv**, **twine**, **virtualenv** és számos más eszköz funkcionalitását, miközben **10-100-szor gyorsabb a pip-nél**. Teljes körű projektmenedzsmentet kínál egy univerzális lockfile segítségével, beépített feladatfuttatóval (task runner), amely a **pyproject.toml**-ben definiált feladatokat hajtja végre, és képes virtuális környezetek aktiválására a **fyn shell** paranccsal.
A **fyn** számos egyedi funkciót kínál, mint például a függőségek egyszeri parancsban történő frissítését (**fyn upgrade**), szkriptek futtatását beágyazott függőségi metaadatok támogatásával, Python-verziók telepítését és kezelését, valamint Python csomagokban közzétett eszközök futtatását és telepítését. Emellett **pip-kompatibilis interfészt** biztosít a megszokott CLI élmény fenntartása mellett, támogatja a **Cargo-stílusú munkaterületeket** (workspaces) nagyobb projektek számára, és lemezterület-hatékony globális gyorsítótárral rendelkezik a függőségek deduplikálására. A csomagindexek felé küldött kérésekben a **fyn** minimalizálja a felhasználói agent fejlécet, csupán **fyn/
A projekt állapotát a **fyn status** paranccsal lehet megvizsgálni, amely információt nyújt a jelenlegi könyvtárról, a projektkezelésről, a lockfile állapotáról és a virtuális környezetről. Speciális funkciók közé tartozik a **PyTorch backend diagnosztika** (**fyn torch doctor**), amely ajánlást tesz a megfelelő PyTorch backend telepítésére, valamint a **cache méretkorlát beállítása** (**UV_CACHE_MAX_SIZE** környezeti változóval), amely automatikusan kitisztítja a legrégebbi bejegyzéseket. A **fyn** támogatja az egyéni lockfile neveket (**UV_LOCKFILE**) és a privát csomagindexek konfigurálását a **pyproject.toml**-ben, ami különösen hasznos vállalati környezetekben. Az **uv**-ről való átállás egyszerű: az **uv.lock** fájlt át kell nevezni **fyn.lock**-ra, a **pyproject.toml**-ben a **[tool.uv]** szekciót **[tool.fyn]**-re kell módosítani, majd a **fyn** parancsok használatával folytatódhat a munka.
Ez a cikk a Neural News AI (V1) verziójával készült.
Forrás: https://github.com/duriantaco/fyn.
A képet Karl Hörnfeldt készítette, mely az Unsplash-on található.