ProxyCraft
ProxyCraft is the easiest and quickest way to deploy a web proxy.
✨ Features
ProxyCraft offers many features:
- 🔒 Protocol Support: Handle HTTP, HTTPS, WebSockets, TCP/UDP, and SOCKS proxies
- 🔐 Authentication: Support for various auth methods (Basic, Digest, NTLM, Kerberos)
- 🔄 Connection Pooling: Efficient reuse of connections to improve performance
- ⚖️ Load Balancing: Distribute traffic across multiple proxies
- 🏥 Health Checking: Automatic detection and recovery from failed proxies
- 💾 Caching: Store and reuse responses for identical requests
- 🔄 Retry Mechanisms: Automatically retry failed requests
- 🔧 Circuit Breaking: Prevent cascading failures
- 📊 Metrics Collection: Track proxy performance, latency, error rates
- 🔐 TLS/SSL Termination: Handle encryption/decryption
- 🌍 IP Rotation: Change public IP addresses for scraping
- 🎯 Geo-targeting: Route requests through proxies in specific locations
🚀 Quick Start
Installation
pip install proxycraft
Or with uv:
uv add proxycraft
Basic Usage
from proxycraft import ProxyCraft
if __name__ == "__main__":
proxycraft: ProxyCraft = ProxyCraft(config_file='proxy.json')
proxycraft.serve(host='0.0.0.0', port=8091)
📋 Configuration Example
{
"version": "1.0",
"name": "Simple example",
"endpoints": [
{
"prefix": "/",
"match": "**/*",
"backends": {
"https": {
"url": "https://jsonplaceholder.typicode.com/posts"
}
},
"upstream": {
"proxy": {
"enabled": true
}
}
}
]
}
🐳 Docker Usage
docker build -t proxycraft -f dockerfiles/proxycraft.Dockerfile .
docker run -p 8080:8080 proxycraft
Project structure
proxycraft/
├── app/ # ASGI application composition root
├── features/ # Capability-owned modules (routing, backends, middleware, …)
└── shared/ # Cross-cutting infrastructure (logging, connection pooling)
See docs/architecture.md and SPECS.md for details.
Development
just install
just test
just lint
Build a release (requires VERSION):
VERSION=1.0.0 just build
Run a subset of tests:
just test tests/path/to/test_file.py
List all available commands:
just
📄 License
Metadata
Release files for proxycraft 2.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| proxycraft-2.2.1.tar.gz | 199.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| proxycraft-2.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 300.0 kB
Release files / proxycraft-2.2.1.tar.gz
| Download URL | proxycraft-2.2.1.tar.gz |
|---|---|
| Size | 199.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4cf533bad5bd05d7b2d9c5ab7406c4b34e595fa47772e89e79bbf6351d8a58a7
|
|
BLAKE2b-256 checksum How to use checksums |
06a50a8edfe7de484d9b83cc00389fce4e354beb26be1dab6d10e012d21a055b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / proxycraft-2.2.1-py3-none-any.whl
| Download URL | proxycraft-2.2.1-py3-none-any.whl |
|---|---|
| Size | 100.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
94d4fa24da0ac6459e9089a923921f17a7b71229673d5ab075be6f708bc6c38d
|
|
BLAKE2b-256 checksum How to use checksums |
34b4873e4298302356bc2a2d4772025276b61b236317b9c01e46c01e5b7b0272
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|