Skip to main content

A cheap, secure, and straightforward serverless localhost proxy

Project description

awscm-proxy logo

awscm-proxy (pronounced “awesome 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 awscm-proxy

Quickstart

awscm-proxy <local-endpoint>

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

awscm_proxy-0.2.1.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

awscm_proxy-0.2.1-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file awscm_proxy-0.2.1.tar.gz.

File metadata

  • Download URL: awscm_proxy-0.2.1.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","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

Hashes for awscm_proxy-0.2.1.tar.gz
Algorithm Hash digest
SHA256 66a7934a43f7cd76307d841f0201f5cd1cf592f987a7160241b09dc82d7a9e57
MD5 a70827c3bc626ebe7a16d10ef37e52f6
BLAKE2b-256 d6778f7da0056057278e6b620b87b31a7bc9aff91bb8ef0e117f6a939b326f46

See more details on using hashes here.

File details

Details for the file awscm_proxy-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: awscm_proxy-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 9.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","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

Hashes for awscm_proxy-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cbd102e2a43149ec0eb007739e1b505c9757b48fcbdf3cf6ffbda8baac0a9106
MD5 11eb424b895dabfddb29b76363a8d98e
BLAKE2b-256 85f01eae2968eb0dc821030c55ab4d6f00871b486d1eb08ac3c12216e4b98edb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page