diff --git a/.gitignore b/.gitignore index 32041fb..04901f8 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,7 @@ node_modules/ # Remove Cargo.lock from gitignore if creating an executable, leave it for libraries # More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html -# Cargo.lock +Cargo.lock # These are backup files generated by rustfmt **/*.rs.bk diff --git a/Cargo.lock b/Cargo.lock index fa8fde0..2c633ce 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1055,7 +1055,7 @@ dependencies = [ [[package]] name = "idempotent-proxy-server" -version = "0.5.2" +version = "0.5.4" dependencies = [ "anyhow", "async-trait", @@ -1079,7 +1079,7 @@ dependencies = [ [[package]] name = "idempotent-proxy-types" -version = "0.5.2" +version = "0.5.4" dependencies = [ "anyhow", "async-trait", diff --git a/Cargo.toml b/Cargo.toml index 955f914..834b3a0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ members = [ resolver = "2" [workspace.package] -version = "0.5.2" +version = "0.5.4" edition = "2021" repository = "https://github.com/ldclabs/idempotent-proxy" keywords = ["idempotent", "reverse", "proxy", "icp"] diff --git a/README.md b/README.md index 9b9b9bd..a8faa2d 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,6 @@ 💝 This project received a **$5k Developer Grant** from the Dfinity Foundation. -See: https://forum.dfinity.org/t/idempotent-proxy-proxy-https-outcalls-to-any-web2-service/30624 - ## Overview The idempotent-proxy is a reverse proxy service written in Rust with built-in idempotency support. @@ -15,6 +13,15 @@ This service can be used to proxy [HTTPS outcalls](https://internetcomputer.org/ ![Idempotent Proxy](./idempotent-proxy.png) +## Packages + +| Package | Description | +| :----------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------ | +| [idempotent-proxy-server](https://github.com/ldclabs/idempotent-proxy/tree/main/src/idempotent-proxy-server) | Idempotent Proxy implemented in Rust. | +| [idempotent-proxy-cf-worker](https://github.com/ldclabs/idempotent-proxy/tree/main/src/idempotent-proxy-cf-worker) | Idempotent Proxy implemented as Cloudflare Worker. | +| [idempotent-proxy-types](https://github.com/ldclabs/idempotent-proxy/tree/main/src/idempotent-proxy-types) | Idempotent Proxy types in Rust. Should not be used in ICP canister! | +| [examples/eth-canister](https://github.com/ldclabs/idempotent-proxy/tree/main/examples/eth-canister) | A ICP canister integration with Ethereum JSON-RPC API. | + ## Features - [x] Reverse proxy with build-in idempotency support - [x] JSON response filtering diff --git a/examples/eth-canister/README.md b/examples/eth-canister/README.md index 9da0e60..b09e989 100644 --- a/examples/eth-canister/README.md +++ b/examples/eth-canister/README.md @@ -53,4 +53,4 @@ dfx canister call eth-canister get_best_block '()' ## License Copyright © 2024 [LDC Labs](https://github.com/ldclabs). -`ldclabs/idempotent-proxy` is licensed under the MIT License. See [LICENSE](LICENSE-MIT) for the full license text. \ No newline at end of file +`ldclabs/idempotent-proxy` is licensed under the MIT License. See [LICENSE](../../LICENSE-MIT) for the full license text. \ No newline at end of file diff --git a/src/idempotent-proxy-cf-worker/README.md b/src/idempotent-proxy-cf-worker/README.md index a34aeb0..644a347 100644 --- a/src/idempotent-proxy-cf-worker/README.md +++ b/src/idempotent-proxy-cf-worker/README.md @@ -11,8 +11,6 @@ This service can be used to proxy [HTTPS outcalls](https://internetcomputer.org/ ![Idempotent Proxy](./idempotent-proxy.png) -If you plan to use this project and have any questions, feel free to open an issue. I will address it as soon as possible. - ## Run proxy in local development mode Run proxy: @@ -47,4 +45,4 @@ More information: https://github.com/ldclabs/idempotent-proxy ## License Copyright © 2024 [LDC Labs](https://github.com/ldclabs). -`ldclabs/idempotent-proxy` is licensed under the MIT License. See [LICENSE](LICENSE-MIT) for the full license text. \ No newline at end of file +`ldclabs/idempotent-proxy` is licensed under the MIT License. See [LICENSE](../../LICENSE-MIT) for the full license text. \ No newline at end of file diff --git a/src/idempotent-proxy-server/README.md b/src/idempotent-proxy-server/README.md index 4f17b33..1187f6d 100644 --- a/src/idempotent-proxy-server/README.md +++ b/src/idempotent-proxy-server/README.md @@ -9,9 +9,7 @@ When multiple requests with the same idempotency-key arrive within a specific ti This service can be used to proxy [HTTPS outcalls](https://internetcomputer.org/docs/current/developer-docs/smart-contracts/advanced-features/https-outcalls/https-outcalls-overview) for [ICP canisters](https://internetcomputer.org/docs/current/developer-docs/smart-contracts/overview/introduction), 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](./idempotent-proxy.png) - -If you plan to use this project and have any questions, feel free to open an issue. I will address it as soon as possible. +![Idempotent Proxy](../../idempotent-proxy.png) ## Features - [x] Reverse proxy with build-in idempotency support @@ -32,17 +30,7 @@ docker run --name redis -d -p 6379:6379 redis:latest cargo run -p idempotent-proxy-server ``` -### Run proxy with Docker - -Run proxy with Docker: -```bash -docker run --name redis -d -p 6379:6379 redis:latest -docker run --name idempotent-proxy -d -p 8080:8080 --link redis:redis zensh/idempotent-proxy -``` - -More information: https://github.com/ldclabs/idempotent-proxy - ## License Copyright © 2024 [LDC Labs](https://github.com/ldclabs). -`ldclabs/idempotent-proxy` is licensed under the MIT License. See [LICENSE](LICENSE-MIT) for the full license text. \ No newline at end of file +`ldclabs/idempotent-proxy` is licensed under the MIT License. See [LICENSE](../../LICENSE-MIT) for the full license text. \ No newline at end of file diff --git a/src/idempotent-proxy-types/README.md b/src/idempotent-proxy-types/README.md index 47d05c1..b763c01 100644 --- a/src/idempotent-proxy-types/README.md +++ b/src/idempotent-proxy-types/README.md @@ -9,7 +9,7 @@ When multiple requests with the same idempotency-key arrive within a specific ti This service can be used to proxy [HTTPS outcalls](https://internetcomputer.org/docs/current/developer-docs/smart-contracts/advanced-features/https-outcalls/https-outcalls-overview) for [ICP canisters](https://internetcomputer.org/docs/current/developer-docs/smart-contracts/overview/introduction), 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](./idempotent-proxy.png) +![Idempotent Proxy](../../idempotent-proxy.png) ## Features - [x] Reverse proxy with build-in idempotency support @@ -25,4 +25,4 @@ More information: https://github.com/ldclabs/idempotent-proxy ## License Copyright © 2024 [LDC Labs](https://github.com/ldclabs). -`ldclabs/idempotent-proxy` is licensed under the MIT License. See [LICENSE](LICENSE-MIT) for the full license text. \ No newline at end of file +`ldclabs/idempotent-proxy` is licensed under the MIT License. See [LICENSE](../../LICENSE-MIT) for the full license text. \ No newline at end of file