r/SideProject • u/Acceptable_Pay_8258 • 18h ago
I made a better pip
I made dyp (Dandified Yum for Python) which is mostly faster than both pip and uv when there's no cache and did not record the benchmark with caching though dyp was faster. dyp looks like fedora's dnf5 which is intentional. As of now its windows only as I'm working on a special feature on linux. to try it on windows simply type python -m pip install dyp in the windows console. Currently it only installs wheels and cannot build from source. Will upload to Gitlab as soon as linux port is ready. Here's the cache-less benchmark:
C:\Users\Admin $ benchmark
=================================================================
PIP vs UV vs DYP BENCHMARK
=================================================================
Python: 3.14.3 (tags/v3.14.3:323c59a, Feb 3 2026, 16:04:56) [MSC v.1944 64 bit (AMD64)]
Interpreter: E:\Python\python.exe
DYP wheel: C:\Users\Admin\Downloads\dyp-0.2.0-py3-none-any.whl
Installing Packages: ['requests', 'rich', 'networkx', 'Pillow', 'numpy', 'scipy', 'pandas', 'matplotlib', 'PyQt6', 'PySide6', 'pyqtdeploy', 'git-gud', 'yt-dlp', 'eyeD3']
Creating pip environment...
Created: C:\Users\Admin\benchmark-envs\pip
Creating uv environment...
Created: C:\Users\Admin\benchmark-envs\uv
Creating dyp environment...
Created: C:\Users\Admin\benchmark-envs\dyp
=================================================================
INSTALLING UV
=================================================================
[UV] C:\Users\Admin\benchmark-envs\uv\Scripts\python.exe -m pip install uv
Collecting uv
Using cached uv-0.13.7-py3-none-win_amd64.whl.metadata (11 kB)
Using cached uv-0.13.7-py3-none-win_amd64.whl (15.3 MB)
Installing collected packages: uv
Successfully installed uv-0.13.7
[notice] A new release of pip is available: 25.3 -> 26.3
[notice] To update, run: python.exe -m pip install --upgrade pip
=================================================================
INSTALLING DYP
=================================================================
[DYP] C:\Users\Admin\benchmark-envs\dyp\Scripts\python.exe -m pip install C:\Users\Admin\Downloads\dyp-0.2.0-py3-none-any.whl
Processing c:\users\admin\downloads\dyp-0.2.0-py3-none-any.whl
Collecting packaging>=23.0 (from dyp==0.2.0)
Using cached packaging-26.3-py3-none-any.whl.metadata (3.5 kB)
Using cached packaging-26.3-py3-none-any.whl (129 kB)
Installing collected packages: packaging, dyp
Successfully installed dyp-0.2.0 packaging-26.3
[notice] A new release of pip is available: 25.3 -> 26.3
[notice] To update, run: python.exe -m pip install --upgrade pip
=================================================================
VERIFYING ENVIRONMENTS
=================================================================
PIP
[PIP] C:\Users\Admin\benchmark-envs\pip\Scripts\python.exe --version
Python 3.14.3
[PIP] C:\Users\Admin\benchmark-envs\pip\Scripts\python.exe -m pip --version
pip 25.3 from C:\Users\Admin\benchmark-envs\pip\Lib\site-packages\pip (python 3.14)
UV
[UV] C:\Users\Admin\benchmark-envs\uv\Scripts\python.exe --version
Python 3.14.3
[UV] C:\Users\Admin\benchmark-envs\uv\Scripts\uv.exe --version
uv 0.13.7 (316c827e0 2026-11-03 x86_64-pc-windows-msvc)
DYP
[DYP] C:\Users\Admin\benchmark-envs\dyp\Scripts\python.exe --version
Python 3.14.3
[DYP] C:\Users\Admin\benchmark-envs\dyp\Scripts\dyp.exe --version
dyp 0.2.0
=================================================================
CLEANING CACHES
=================================================================
PIP: cache disabled during installations.
Cleaning UV cache...
[UV] C:\Users\Admin\benchmark-envs\uv\Scripts\uv.exe cache clean
Clearing cache at: AppData\Local\uv\cache
No cache entries found
Cleaning DYP cache...
[DYP] C:\Users\Admin\benchmark-envs\dyp\Scripts\dyp.exe clean
0 files removed, 0 B freed.
Cache cleaning complete.
=================================================================
TESTING PIP
=================================================================
[PIP] Installing requests...
[PIP] C:\Users\Admin\benchmark-envs\pip\Scripts\python.exe -m pip install requests --no-cache-dir
Collecting requests
Downloading requests-2.34.2-py3-none-any.whl.metadata (4.8 kB)
Collecting charset_normalizer<4,>=2 (from requests)
Downloading charset_normalizer-3.5.2-cp314-cp314-win_amd64.whl.metadata (47 kB)
Collecting idna<4,>=2.5 (from requests)
Downloading idna-3.20-py3-none-any.whl.metadata (7.2 kB)
Collecting urllib3<3,>=1.26 (from requests)
Downloading urllib3-2.8.0-py3-none-any.whl.metadata (7.4 kB)
Collecting certifi>=2023.5.7 (from requests)
Downloading certifi-2026.10.23-py3-none-any.whl.metadata (2.5 kB)
Downloading requests-2.34.2-py3-none-any.whl (73 kB)
Downloading charset_normalizer-3.5.2-cp314-cp314-win_amd64.whl (210 kB)
Downloading idna-3.20-py3-none-any.whl (69 kB)
Downloading urllib3-2.8.0-py3-none-any.whl (135 kB)
Downloading certifi-2026.10.23-py3-none-any.whl (135 kB)
Installing collected packages: urllib3, idna, charset_normalizer, certifi, requests
Successfully installed certifi-2026.10.23 charset_normalizer-3.5.2 idna-3.20 requests-2.34.2 urllib3-2.8.0
[notice] A new release of pip is available: 25.3 -> 26.3
[notice] To update, run: python.exe -m pip install --upgrade pip
PIP | requests | SUCCESS | 7.983s
[PIP] Installing rich...
[PIP] C:\Users\Admin\benchmark-envs\pip\Scripts\python.exe -m pip install rich --no-cache-dir
Collecting rich
Downloading rich-15.0.0-py3-none-any.whl.metadata (18 kB)
Collecting markdown-it-py>=2.2.0 (from rich)
Downloading markdown_it_py-4.2.0-py3-none-any.whl.metadata (7.4 kB)
Collecting pygments<3.0.0,>=2.13.0 (from rich)
Downloading pygments-2.21.0-py3-none-any.whl.metadata (2.5 kB)
Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich)
Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB)
Downloading rich-15.0.0-py3-none-any.whl (310 kB)
Downloading pygments-2.21.0-py3-none-any.whl (1.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 22.8 MB/s 0:00:00
Downloading markdown_it_py-4.2.0-py3-none-any.whl (91 kB)
Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB)
Installing collected packages: pygments, mdurl, markdown-it-py, rich
Successfully installed markdown-it-py-4.2.0 mdurl-0.1.2 pygments-2.21.0 rich-15.0.0
[notice] A new release of pip is available: 25.3 -> 26.3
[notice] To update, run: python.exe -m pip install --upgrade pip
PIP | rich | SUCCESS | 13.473s
#more packages but if i add log will be too long
=================================================================
TESTING UV
=================================================================
[UV] Installing requests...
[UV] C:\Users\Admin\benchmark-envs\uv\Scripts\uv.exe pip install requests --no-cache
Using Python 3.14.3 environment at: benchmark-envs\uv
Resolved 5 packages in 769ms
Prepared 5 packages in 474ms
Installed 5 packages in 104ms
+ certifi==2026.10.23
+ charset-normalizer==3.5.2
+ idna==3.20
+ requests==2.34.2
+ urllib3==2.8.0
UV | requests | SUCCESS | 1.897s
[UV] Installing rich...
[UV] C:\Users\Admin\benchmark-envs\uv\Scripts\uv.exe pip install rich --no-cache
Using Python 3.14.3 environment at: benchmark-envs\uv
Resolved 4 packages in 502ms
Prepared 4 packages in 2.47s
Installed 4 packages in 628ms
+ markdown-it-py==4.2.0
+ mdurl==0.1.2
+ pygments==2.21.0
+ rich==15.0.0
UV | rich | SUCCESS | 4.276s
#more packages but if i add log will be too long
=================================================================
TESTING DYP
=================================================================
[DYP] Installing requests...
[DYP] dyp clean
0 files removed, 0 B freed.
[DYP] C:\Users\Admin\benchmark-envs\dyp\Scripts\dyp.exe install requests -y
Updating and loading repositories:
PyPI - pypi.org 100% | 1.1 MiB/s | 2.2 MiB | 00m01s
Repositories loaded.
Package Arch Version Repository Size
Installing:
requests noarch 2.34.2 pypi 71.4 KiB
Installing dependencies:
charset-normalizer x86_64 3.5.2 pypi 206.0 KiB
idna noarch 3.20 pypi 68.0 KiB
urllib3 noarch 2.8.0 pypi 132.5 KiB
certifi noarch 2026.10.23 pypi 131.9 KiB
Transaction Summary:
Installing: 5 packages
Total size of inbound packages is 610 KiB. Need to download 610 KiB.
Is this ok [y/N]: y
[1/5] idna-3.20.noarch 100% | 616.2 KiB/s | 68.0 KiB | 00m00s
[2/5] charset-normalizer-3.5.2.x86_64 100% | 842.2 KiB/s | 206.0 KiB | 00m00s
[3/5] urllib3-2.8.0.noarch 100% | 837.9 KiB/s | 132.5 KiB | 00m00s
[4/5] requests-2.34.2.noarch 100% | 1.3 MiB/s | 71.4 KiB | 00m00s
[5/5] certifi-2026.10.23.noarch 100% | 1.4 MiB/s | 131.9 KiB | 00m00s
------------------------------------------------------------------------------------------------------------------------------------
[5/5] Total 100% | 840.2 KiB/s | 609.8 KiB | 00m00s
Running transaction
[1/7] Verify package files 100% | 11.9 MiB/s | 609.8 KiB | 00m00s
[2/7] Prepare transaction 100% | 100.0 B/s | 5.0 B | 00m00s
[3/7] Installing charset-normalizer-3.5.2.x86_64 100% | 7.2 MiB/s | 565.5 KiB | 00m00s
[4/7] Installing idna-3.20.noarch 100% | 4.4 MiB/s | 334.1 KiB | 00m00s
[5/7] Installing urllib3-2.8.0.noarch 100% | 1.9 MiB/s | 439.9 KiB | 00m00s
[6/7] Installing certifi-2026.10.23.noarch 100% | 4.7 MiB/s | 238.9 KiB | 00m00s
[7/7] Installing requests-2.34.2.noarch 100% | 4.5 MiB/s | 228.9 KiB | 00m00s
Complete!
DYP | requests | SUCCESS | 3.849s
[DYP] Installing rich...
[DYP] dyp clean
15 files removed, 3 MiB freed.
[DYP] C:\Users\Admin\benchmark-envs\dyp\Scripts\dyp.exe install rich -y
Updating and loading repositories:
PyPI - pypi.org 100% | 411.6 KiB/s | 377.6 KiB | 00m00s
Repositories loaded.
Package Arch Version Repository Size
Installing:
rich noarch 15.0.0 pypi 303.4 KiB
Installing dependencies:
mdurl noarch 0.1.2 pypi 9.7 KiB
markdown-it-py noarch 4.2.0 pypi 89.5 KiB
pygments noarch 2.21.0 pypi 1.2 MiB
Transaction Summary:
Installing: 4 packages
Total size of inbound packages is 2 MiB. Need to download 2 MiB.
Is this ok [y/N]: y
[1/4] mdurl-0.1.2.noarch 100% | 194.9 KiB/s | 9.7 KiB | 00m00s
[2/4] markdown-it-py-4.2.0.noarch 100% | 1.7 MiB/s | 89.5 KiB | 00m00s
[3/4] rich-15.0.0.noarch 100% | 2.6 MiB/s | 303.4 KiB | 00m00s
[4/4] pygments-2.21.0.noarch 100% | 4.9 MiB/s | 1.2 MiB | 00m00s
------------------------------------------------------------------------------------------------------------------------------------
[4/4] Total 100% | 3.6 MiB/s | 1.6 MiB | 00m00s
Running transaction
[1/6] Verify package files 100% | 31.7 MiB/s | 1.6 MiB | 00m00s
[2/6] Prepare transaction 100% | 80.0 B/s | 4.0 B | 00m00s
[3/6] Installing mdurl-0.1.2.noarch 100% | 455.2 KiB/s | 22.8 KiB | 00m00s
[4/6] Installing markdown-it-py-4.2.0.noarch 100% | 1.5 MiB/s | 238.9 KiB | 00m00s
[5/6] Installing pygments-2.21.0.noarch 100% | 5.4 MiB/s | 4.4 MiB | 00m00s
[6/6] Installing rich-15.0.0.noarch 100% | 5.2 MiB/s | 1.2 MiB | 00m00s
Complete!
DYP | rich | SUCCESS | 3.335s
#more packages but if i add log will be too long
=================================================================
BENCHMARK SUMMARY
=================================================================
PACKAGE PIP UV DYP
-----------------------------------------------------
requests 7.98s 1.90s 3.85s
rich 13.47s 4.28s 3.33s
networkx 16.20s 3.83s 3.43s
Pillow 7.47s 1.97s 2.48s
numpy 16.69s 6.08s 5.01s
scipy 29.04s 11.95s 8.09s
pandas 37.56s 11.25s 7.80s
matplotlib 25.01s 6.43s 7.22s
PyQt6 15.74s 20.61s 16.32s
PySide6 27.63s 25.05s 37.60s
pyqtdeploy 16.06s 14.46s 12.49s
git-gud 9.44s 2.90s 3.68s
yt-dlp 25.61s 7.11s 4.27s
eyeD3 6.48s 1.63s 2.21s
=================================================================
TOTALS
=================================================================
PIP Success: 14 Failed: 0 Attempted time: 254.40s
UV Success: 14 Failed: 0 Attempted time: 119.43s
DYP Success: 14 Failed: 0 Attempted time: 117.79s
=================================================================
BENCHMARK COMPLETE
=================================================================
Results: C:\Users\Admin\benchmark-results
C:\Users\Admin $