Incremental PyPI Simple API caching mirror
Project description
PyTail
pytail is a small PyPI caching proxy. It exposes a Python Simple Repository
API endpoint, fetches packages from upstream on demand, and keeps downloaded
files in a local cache.
It is useful when you want faster repeated installs, a simple shared package cache, or a local endpoint for PyPI and PyTorch wheel indexes.
Features
- PyPI-compatible
/simple/endpoint forpipanduv - lazy caching of project pages and package files
- optional cache size limit with least-recently-used cleanup
- PyTorch wheel index proxy under
/pytorch-wheels/ - HTML and JSON Simple API responses
Run
cargo run -- \
--bind 127.0.0.1:3141 \
--cache-dir .cache/pytail
Then use it as the package index:
uv pip install --index-url http://127.0.0.1:3141/simple/ requests
pip install --index-url http://127.0.0.1:3141/simple/ requests
Open the local index in a browser:
http://127.0.0.1:3141/simple/
PyTorch Wheels
PyTorch wheel indexes are available under /pytorch-wheels/.
For example, this upstream command:
pip install torch --index-url https://download.pytorch.org/whl/cu126
can use the local cache instead:
pip install torch --index-url http://127.0.0.1:3141/pytorch-wheels/cu126
If a package needs both PyTorch wheels and normal PyPI packages:
pip install torch \
--index-url http://127.0.0.1:3141/pytorch-wheels/cu126 \
--extra-index-url http://127.0.0.1:3141/simple/
Options
Common options:
--bind: listen address, default127.0.0.1:3141--cache-dir: cache directory, default.cache/pytail--cache-max-size: max file cache size, default0for unlimited; examples:512MiB,2G,10GB--upstream-base-url: PyPI-compatible upstream, defaulthttps://pypi.org--torch-url: PyTorch wheel upstream, defaulthttps://download.pytorch.org/whl/--project-cache-ttl-secs: project page refresh interval, default900--request-timeout-secs: upstream request timeout, default15--verbose: enable debug logs
Build
Build the Rust binary:
cargo build --release
Build a Python wheel with maturin:
maturin build --release
The wheel installs the pytail command.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pytail-0.1.5.tar.gz.
File metadata
- Download URL: pytail-0.1.5.tar.gz
- Upload date:
- Size: 82.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1be3909f2c635ea3ead7886695aa7ef2fcc23ab50c20506460242613a3689d1c
|
|
| MD5 |
261b7ce7bdd460279a42f05a22b11bdf
|
|
| BLAKE2b-256 |
7f1347194436a844389b4e9bbb54420e7e695013b6e5632fd784df34c230e4f8
|
Provenance
The following attestation bundles were made for pytail-0.1.5.tar.gz:
Publisher:
release.yml on AndPuQing/PyTail
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pytail-0.1.5.tar.gz -
Subject digest:
1be3909f2c635ea3ead7886695aa7ef2fcc23ab50c20506460242613a3689d1c - Sigstore transparency entry: 1610962600
- Sigstore integration time:
-
Permalink:
AndPuQing/PyTail@683edf4721b7838dbbbca94ad8095665d6541956 -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/AndPuQing
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@683edf4721b7838dbbbca94ad8095665d6541956 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pytail-0.1.5-py3-none-win_amd64.whl.
File metadata
- Download URL: pytail-0.1.5-py3-none-win_amd64.whl
- Upload date:
- Size: 3.4 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a138282e25ae5cbabeceebcf269d4c66487505c07bc576c918ef94705b03923d
|
|
| MD5 |
727af87e9fa39de8d1816c6aebef4043
|
|
| BLAKE2b-256 |
7690aac427715b3ea91d4c001e0b07cf32521586777555b1d6177e947964c4f0
|
Provenance
The following attestation bundles were made for pytail-0.1.5-py3-none-win_amd64.whl:
Publisher:
release.yml on AndPuQing/PyTail
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pytail-0.1.5-py3-none-win_amd64.whl -
Subject digest:
a138282e25ae5cbabeceebcf269d4c66487505c07bc576c918ef94705b03923d - Sigstore transparency entry: 1610962964
- Sigstore integration time:
-
Permalink:
AndPuQing/PyTail@683edf4721b7838dbbbca94ad8095665d6541956 -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/AndPuQing
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@683edf4721b7838dbbbca94ad8095665d6541956 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pytail-0.1.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pytail-0.1.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.8 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
918ba47413dc81f6edb8612b4f77f85b3f0469cd940dbdccb48817fc886e77c8
|
|
| MD5 |
ac70508e7e522cb8776bc110fcaf8ba6
|
|
| BLAKE2b-256 |
657abc1211933d85435e6773bca9db74164fc94e81c708ff06664ef54a57ee19
|
Provenance
The following attestation bundles were made for pytail-0.1.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on AndPuQing/PyTail
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pytail-0.1.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
918ba47413dc81f6edb8612b4f77f85b3f0469cd940dbdccb48817fc886e77c8 - Sigstore transparency entry: 1610962862
- Sigstore integration time:
-
Permalink:
AndPuQing/PyTail@683edf4721b7838dbbbca94ad8095665d6541956 -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/AndPuQing
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@683edf4721b7838dbbbca94ad8095665d6541956 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pytail-0.1.5-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.
File metadata
- Download URL: pytail-0.1.5-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- Upload date:
- Size: 6.9 MB
- Tags: Python 3, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ac4e41134e6529d3f01b45155c6ffb1a3988ff6d6864d9811e6a452b6e00645
|
|
| MD5 |
909b8456b5b284ecfba1fbed29063df6
|
|
| BLAKE2b-256 |
8eb6d8be2cdaa0ebdf832164f45ba51e20a4bf1a866d7067f996ac05119623bc
|
Provenance
The following attestation bundles were made for pytail-0.1.5-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:
Publisher:
release.yml on AndPuQing/PyTail
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pytail-0.1.5-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl -
Subject digest:
4ac4e41134e6529d3f01b45155c6ffb1a3988ff6d6864d9811e6a452b6e00645 - Sigstore transparency entry: 1610962688
- Sigstore integration time:
-
Permalink:
AndPuQing/PyTail@683edf4721b7838dbbbca94ad8095665d6541956 -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/AndPuQing
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@683edf4721b7838dbbbca94ad8095665d6541956 -
Trigger Event:
push
-
Statement type: