SSRF-safe URL validation for Python
Project description
url_jail
SSRF-safe URL validation for Rust and Python.
The Problem
Your application fetches a user-provided URL:
response = requests.get(user_url)
An attacker submits http://169.254.169.254/latest/meta-data/iam/credentials.
Result: Your AWS keys are in their inbox. Your S3 buckets are public. Your cloud bill is six figures.
This is Server-Side Request Forgery (SSRF), the vulnerability behind:
- CVE-2024-0243: LangChain RecursiveUrlLoader (CVSS 8.6)
- CVE-2025-2828: LangChain RequestsToolkit (CVSS 9.1)
- Capital One 2019 breach (100M+ records)
"I'll just block 169.254.169.254"
Attackers encode IPs in ways your blocklist won't catch:
| Attack | Your Blocklist | url_jail |
|---|---|---|
http://0x7f000001/ (hex) |
Passes | Blocked |
http://0177.0.0.1/ (octal) |
Passes | Blocked |
http://2130706433/ (decimal) |
Passes | Blocked |
http://127.1/ (short-form) |
Passes | Blocked |
http://[::ffff:127.0.0.1]/ (IPv6-mapped) |
Passes | Blocked |
http://metadata.google.internal/ |
Maybe | Blocked |
| DNS rebinding | Passes | Blocked* |
* When using get_sync() or the returned Validated.ip directly.
url_jail validates after DNS resolution. Encoding tricks don't work.
Note: This library has not undergone a formal security audit. See SECURITY.md.
The Solution
Python (recommended):
from url_jail import get_sync
body = get_sync(user_url) # Validates URL and all redirects
Python (with existing HTTP client):
from url_jail.adapters import safe_session
s = safe_session()
response = s.get(user_url) # SSRF-safe requests.Session
Rust:
use url_jail::{validate, Policy};
use reqwest::Client;
let v = validate("https://example.com/api", Policy::PublicOnly).await?;
let client = Client::builder()
.resolve(&v.host, v.to_socket_addr())
.build()?;
let response = client.get(&v.url).send().await?;
Installation
pip install url_jail
# With HTTP client adapters
pip install url_jail[requests] # or [httpx], [aiohttp], [urllib3], [all]
[dependencies]
url_jail = "0.2"
# Enable fetch() for redirect chain validation
url_jail = { version = "0.2", features = ["fetch"] }
Policies
| Policy | Allows | Blocks |
|---|---|---|
PublicOnly |
Public IPs only | Private, loopback, link-local, metadata |
AllowPrivate |
Private + public | Loopback, metadata (for internal services) |
HTTP Client Adapters (Python)
# requests
from url_jail.adapters import safe_session
s = safe_session()
response = s.get(user_url)
# httpx (sync)
from url_jail.adapters import safe_httpx_client
client = safe_httpx_client()
response = client.get(user_url)
# httpx (async)
from url_jail.adapters import safe_httpx_async_client
async with safe_httpx_async_client() as client:
response = await client.get(user_url)
# aiohttp
from url_jail.adapters import safe_aiohttp_session
async with safe_aiohttp_session() as session:
async with session.get(user_url) as response:
body = await response.text()
# urllib3
from url_jail.adapters import safe_urllib3_pool
pool = safe_urllib3_pool()
response = pool.request("GET", user_url)
Advanced: Custom Blocklist
use url_jail::{PolicyBuilder, Policy};
let policy = PolicyBuilder::new(Policy::AllowPrivate)
.block_cidr("10.0.0.0/8")
.block_host("*.internal.example.com")
.build();
Error Handling
use url_jail::{validate_sync, Policy, Error};
match validate_sync("http://127.0.0.1/", Policy::PublicOnly) {
Ok(v) => println!("Safe: {}", v.ip),
Err(e) if e.is_blocked() => {
// Security rejection (SSRF, hostname, redirect)
println!("Blocked: {}", e);
}
Err(e) if e.is_retriable() => {
// Temporary error (DNS, timeout) - retry with caution
println!("Temporary: {}", e);
}
Err(e) => println!("Error: {}", e),
}
| Method | Returns true for |
|---|---|
is_blocked() |
SsrfBlocked, HostnameBlocked, RedirectBlocked |
is_retriable() |
DnsError, Timeout, HttpError |
url() |
Extracts the URL that caused the error |
What's Blocked
- Cloud metadata endpoints (AWS, GCP, Azure, Alibaba)
- Private IPs (10.x, 172.16.x, 192.168.x) with
PublicOnly - Loopback (127.x, ::1)
- Link-local (169.254.x, fe80::)
- IP encoding tricks: octal (
0177.0.0.1), decimal (2130706433), hex (0x7f000001), short-form (127.1) - IPv4-mapped IPv6 (
::ffff:127.0.0.1)
Features
| Feature | Description |
|---|---|
fetch |
fetch() / get_sync() with redirect validation |
tracing |
Logging for validation decisions |
License
MIT OR Apache-2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
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 url_jail-0.2.0-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 2.3 MB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd3cb7db5ed861ae1698658835cb68c3c7c2ff18b064c88f9b9a32cf7aba3b0d
|
|
| MD5 |
42dfa673974fe1ed86c6204083c193e2
|
|
| BLAKE2b-256 |
45f526f6fbba6d5de227fe03e8432b50f21c73c86533dab348332705b78d1442
|
File details
Details for the file url_jail-0.2.0-cp314-cp314-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp314-cp314-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 3.1 MB
- Tags: CPython 3.14, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63ef2306de459a15719150443861511106b720002e7f026968377651d80197f9
|
|
| MD5 |
641ed2c442bacfa0e2de02421dcd03f8
|
|
| BLAKE2b-256 |
460aef7e23df3d82254a46c6dacfc6de69494773644c11144e67a38fa1f8bae7
|
File details
Details for the file url_jail-0.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.9 MB
- Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b03687bcab6b67a9f504a259dbc6021e936d7fdf5bb180656beed7c15c6b255b
|
|
| MD5 |
dcebd2dd8e03135f35d87e5fe326a4ca
|
|
| BLAKE2b-256 |
b88fd0ab1a12137e1efd0edbd27e8bed7bc8b8c26cff117b923423b272cba6bf
|
File details
Details for the file url_jail-0.2.0-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a74ea8bc497aae1ef71114ad10cf61357877179dfb16c68b89c7f5c082534b8
|
|
| MD5 |
b1629b5544bb3dc2a609441a9460a7d0
|
|
| BLAKE2b-256 |
15ba02056349e78b34852038e2cfe525d63c2835d27bb2d169b8b0609c53aa97
|
File details
Details for the file url_jail-0.2.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 2.3 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eacd3abb9a9b9ef4379fe5afa5d3a3a78f5e27df35f4fbf0be407b8cb1b9725e
|
|
| MD5 |
acfef5a8a6a298c0d66595c7de5766d7
|
|
| BLAKE2b-256 |
ed0896c1db77557556e7f5bd7f4114dafa4546f76b2ff5d17fa25c1c95ed3b72
|
File details
Details for the file url_jail-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 3.1 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c5e060efaa4877d0ee2a9b0bc8c9c30405e526c72092a9b143ca255b49cbf86
|
|
| MD5 |
a63ca6ebe788a99d5a0495d71b211972
|
|
| BLAKE2b-256 |
4a6a763e7fb9236865691c3d75ced81597ddb894f78d11ebd5486b6b9dc25fdf
|
File details
Details for the file url_jail-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.9 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15de02b9ec8391b588507dcfc59386b2438ccb683ed58b0a36bc740dc8e5bf93
|
|
| MD5 |
14bf460f780caa1b6a0e6ecf1e477e7d
|
|
| BLAKE2b-256 |
7fdc0606bd72909037ea43dc84e7581ab4583d4ca41aaab7512b971875101f08
|
File details
Details for the file url_jail-0.2.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a5465e7da76d1e157edb57d7b3c7922f0465d514c749254eb2c78fc10fc99aea
|
|
| MD5 |
1ca5c889039fabb50cc655560a48cf6c
|
|
| BLAKE2b-256 |
3accdff74a084b14e5406c80602183ec58876c5861d553735ac5adc7d4c301ea
|
File details
Details for the file url_jail-0.2.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 2.3 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76c5eb9596ac046f9cece20bf05c0c932f40ce5b0e7d9fc33c6003f5bae4ae24
|
|
| MD5 |
b4dc90d95e192e4def61474410fa8adb
|
|
| BLAKE2b-256 |
8850c4759ea7def68f27068f0b5478363e83b02032e3d3a0f93f7e42214f37a1
|
File details
Details for the file url_jail-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 3.1 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
296717c16ae7a30b0566df99f209a8b4cc419587e2bd6240fe49733c8d41223b
|
|
| MD5 |
42dc17e6b4c88014fce866dbdb90d8d8
|
|
| BLAKE2b-256 |
52e97757faa0ccfc2aba822dbb0b3c4043c474e81ee770e54ced40c9aca4f5e7
|
File details
Details for the file url_jail-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.9 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8fec776db25a8fb178628787db86ad66991862f0e4624c3f296b42e91b7ea5a
|
|
| MD5 |
5bdec73fc42973beb2bd25ed50bf8f6e
|
|
| BLAKE2b-256 |
e31fbde057519c7396c4086d11b6b6e77d2ce7b49550d0d7eb8c857eebc1f2cf
|
File details
Details for the file url_jail-0.2.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30c8308e4c9013c09f3acd7fca1e2f8931371cad68090e73f2574f92ef472c4d
|
|
| MD5 |
a854828d0ee8a9a4e35752a36c8d67ed
|
|
| BLAKE2b-256 |
ce776a97c4db295522e6bdee4952bdbbd2c70f194c45a0bf8f0f7e7e1f1e43f8
|
File details
Details for the file url_jail-0.2.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 2.3 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f219cc899f911afc36df8e5fccf786fcf489eb192ea52de753f04dde12e93bd
|
|
| MD5 |
936062091336a98d9a754041b4b5432d
|
|
| BLAKE2b-256 |
086a870c11fb4f3c583e942cecee29986ded62ec306a072308d9709795d35a56
|
File details
Details for the file url_jail-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 3.1 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89e7282c553b0de4a42ef90b325fea1235d0a8781e00cdfc24f7f8fff40e97c8
|
|
| MD5 |
93751eb9787c19ed42030641f82b7465
|
|
| BLAKE2b-256 |
3a0303172edc59794a6253f61cbba1ae5590caddefef9c8856e3e1cc394314ed
|
File details
Details for the file url_jail-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.9 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
85e4d6b57dee67bcc801369dfc01a5b33bdc94e86d5e07e039949c0f8f04634b
|
|
| MD5 |
cd2f58819ec3e57ab3d3df126d2b3480
|
|
| BLAKE2b-256 |
17acb84aa1b5b45a8e83429b611be85cd5bf034d6a5592387793a010ea53d5f1
|
File details
Details for the file url_jail-0.2.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
696dc79bc83e509986e86a64235a88ae2b14d32174b8f01c6078d1a745eb4227
|
|
| MD5 |
554a7005441a6ef53b155e1c820c4218
|
|
| BLAKE2b-256 |
fabc59c50261754de4c963d378c2503f8497b54b7c4527a8748e3dd06e01425b
|
File details
Details for the file url_jail-0.2.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 2.3 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b69196b618fe89b763a32b32730cd74ad1eaa7fcd1cccb8a7957ce2d8edc956
|
|
| MD5 |
61e8efd8b222292640d2c4d0f12f59fd
|
|
| BLAKE2b-256 |
3bb8dc967e1743143f8d0f6510260392d42aebe15a38e7fc3ad9354e98fd5d96
|
File details
Details for the file url_jail-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp310-cp310-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 3.1 MB
- Tags: CPython 3.10, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
124f4560cf3aa0f510d2f764ad9caf67d08d99fe88d9ade4ec49d62db3f785e5
|
|
| MD5 |
4d8ee325e8fc7820f30b7bdb0ff9f732
|
|
| BLAKE2b-256 |
1af3e576ceaefac69fa9eb7228996fbdf8163964b648c7ecfbcad31da5f7f64f
|
File details
Details for the file url_jail-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.9 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac7e4778cc86489665037ec357ec689d7d7693ebbe735b2ac5eeaff84d546c9e
|
|
| MD5 |
ebcd1563488f9366d5accfa86272c741
|
|
| BLAKE2b-256 |
7c5512d3ac8363fa9a65bf4981138371dbef19a5aff903bcb1b4748e6f04685a
|
File details
Details for the file url_jail-0.2.0-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6118aee9d8c0b588a3420cb5519a4ed7c20d46b6c10f6a64df70242174c26f6
|
|
| MD5 |
7a97a6b475795948f4535d3ab619890c
|
|
| BLAKE2b-256 |
961e69530a05411e30b3af32557b0c331270264000f181f3bcc7cc588467dd38
|
File details
Details for the file url_jail-0.2.0-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 2.3 MB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06655756c17633c56ec9be7d45460a0d1fc377bc57acfe28d081880e35b7ddb7
|
|
| MD5 |
4a324cc98fa97762206660b320716404
|
|
| BLAKE2b-256 |
6a9c67f4913a530f93be9bb4a503433295013ff1d0977e63ad5d8bd4a500e97e
|
File details
Details for the file url_jail-0.2.0-cp39-cp39-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp39-cp39-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 3.1 MB
- Tags: CPython 3.9, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f995088faf333bbf5c7813c47d80ba4f5b5214935bf07f42ec00e6f88d6abc3d
|
|
| MD5 |
333770485c4e96df2c4cd0602a34b7e0
|
|
| BLAKE2b-256 |
d1203978fe373de1892df860637e5b4e7548b08e78e8be31457eeef0edc59213
|
File details
Details for the file url_jail-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.9 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b77bc88aff055c5cad5ebb23811c735ab3283feadc36aa030635d179e0cc43e1
|
|
| MD5 |
3fff1fd57ba1b1f0c030b0d6265cb33d
|
|
| BLAKE2b-256 |
beb1602df8707e6091a325fa03ed7ea4f08a245fb5a2b7a6b9a2bb26380b734b
|
File details
Details for the file url_jail-0.2.0-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: url_jail-0.2.0-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86e92c6a6f3d57666bfe47fd7f50134e8e75a67dd724397e216f60a9f9dd0142
|
|
| MD5 |
657037938768b9437ab0b84457e68c12
|
|
| BLAKE2b-256 |
30f8ba32ff5f11c89d012b83bcbe828b022ab4a54aa4ccc018bdfa6de4f18fe3
|