17 releases (stable)
new 1.2.2 | Oct 21, 2024 |
---|---|
1.2.1 | Sep 26, 2024 |
1.2.0 | Aug 24, 2024 |
1.1.6 | Jul 19, 2024 |
0.3.0 | May 30, 2024 |
#1076 in Web programming
243 downloads per month
Used in idempotent-proxy-server
11KB
132 lines
Idempotent Proxy
Reverse proxy server with build-in idempotency support written in Rust.
Overview
The idempotent-proxy is a reverse proxy service written in Rust with built-in idempotency support.
When multiple requests with the same idempotency-key arrive within a specific timeframe, only the first request is forwarded to the target service. The response is cached in Redis, and subsequent requests poll Redis to retrieve and return the first request's response.
This service can be used to proxy HTTPS outcalls for ICP canisters, enabling integration with any Web2 http service. It supports hiding secret information, access control, returning only the necessary headers and, for JSON or CBOR data, allows response filtering based on JSON Mask to return only required fields, thus saving cycles consumption in ICP canisters.
Features
- Reverse proxy with build-in idempotency support
- JSON response filtering
- Access control
- Response headers filtering
- HTTPS support
- Running as Cloudflare Worker
- Docker image
More information: https://github.com/ldclabs/idempotent-proxy
License
Copyright © 2024 LDC Labs.
ldclabs/idempotent-proxy
is licensed under the MIT License. See LICENSE for the full license text.
Dependencies
~7.5MB
~136K SLoC