Skip to main content

Straw

A small, self-hosted HTTP/HTTPS egress proxy

Three services, one clear job

Control

A small request API that validates input and assigns healthy workers.

NATS

The only required backing service, used for discovery and request transport.

Egress

Independently scalable workers that make outbound HTTP and HTTPS requests.

From clone to request

make dev

curl -sS \
  -H 'Content-Type: application/json' \
  -d '{"method":"GET","url":"https://example.com"}' \
  http://localhost:8080/api/v1/requests

Deployment boundaries

One deployment is one trust boundary. No tenants, RBAC, billing, quotas, configuration database, or analytics database. Local development is the primary path; production files are examples you adapt.

Straw is pre-1.0 and MIT licensed. The REST request API is the primary supported surface; compatibility and versioning states the exact promises. Questions and bug reports belong in GitHub issues under the support policy.