A cheap, secure, and straightforward serverless localhost proxy
Project description
cm-proxy provides a quick, cheap, secure, and straightforward serverless localhost proxy, useful for receiving webhooks from third-party services on a local development server. It is an inexpensive alternative to services such as ngrok or localtunnel.
We at CauseMatch integrate many external providers, including messaging services, donor funds, and over a dozen payment processors. Naturally, we process a lot of webhooks. Our engineers occasionally need to test those webhooks on a local development server. We don’t love exposing local ports on the big bad internet and we’ve had enough of expensive commercial solutions to a simple problem. So we built a proxy using dirt-cheap, pay-as-you-go AWS serverless building blocks. And we cancelled our ngrok subscription.
Our solution seemed so obvious, we’re surprised we didn’t find any similar utilities out there. So we’re making ours available. We hope others will find it useful. Drop us a line if you do!
Features
unidirectional and bidirectional proxy configurations
https endpoint
localhost is not publicly exposed
easily moved from one dev host to another
incoming webhooks are queued and can be processed at a later time
optional integration with mitmproxy and mitmweb UI
Non-goals
high performance
support for protocols other than http
support for streaming responses
support for non-utf8 responses
Requirements
Python >= 3.12
AWS credentials
Read more about security.
Installation
pip install cm-proxy
Quickstart
cm-proxy <local-endpoint>
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 Distribution
Built Distribution
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 cm_proxy-0.2.3.tar.gz.
File metadata
- Download URL: cm_proxy-0.2.3.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
342bce83943bdd491d0c51caa4945893832303f2f4c94ac8a5a65bb6262e4366
|
|
| MD5 |
c1576e3be556384d53495b6c718b338b
|
|
| BLAKE2b-256 |
619fe0adfa9a1d07777b131909f7afc73497cba0317da6b60be5430795a1a05d
|
File details
Details for the file cm_proxy-0.2.3-py3-none-any.whl.
File metadata
- Download URL: cm_proxy-0.2.3-py3-none-any.whl
- Upload date:
- Size: 9.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
92cf3fa4c2832c124fe38210c8291c8bad9f030f5646ea822f1ae385bb48f150
|
|
| MD5 |
395b88da5d239c91d93158f48f51a43f
|
|
| BLAKE2b-256 |
aa7235cae7461ab63804d8a0904159baa388f433d7eeec55714d27b2be1d2ea4
|