17 releases (stable)

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

#1244 in Web programming

Download history 46/week @ 2024-07-30 174/week @ 2024-08-20 12/week @ 2024-08-27 13/week @ 2024-09-10 5/week @ 2024-09-17 212/week @ 2024-09-24 18/week @ 2024-10-01 8/week @ 2024-10-08 134/week @ 2024-10-15 57/week @ 2024-10-22 1/week @ 2024-10-29 7/week @ 2024-11-05

202 downloads per month
Used in idempotent-proxy-server

MIT/Apache

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.

Idempotent Proxy

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