{"id":15138492,"url":"https://github.com/dr-dream/rest-to-rest-proxy","last_synced_at":"2026-02-11T13:33:32.602Z","repository":{"id":240191866,"uuid":"554333245","full_name":"Dr-Dream/rest-to-rest-proxy","owner":"Dr-Dream","description":"Quarkus/Camel based proxy to pass http requests to remote agent","archived":false,"fork":false,"pushed_at":"2024-06-28T11:01:00.000Z","size":266,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-21T03:42:38.984Z","etag":null,"topics":["camel","kotlin","quarkus","vertx","websocket"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dr-Dream.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-19T16:29:26.000Z","updated_at":"2024-06-28T11:01:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"53b85931-c943-46d0-bc99-a31315ffa544","html_url":"https://github.com/Dr-Dream/rest-to-rest-proxy","commit_stats":null,"previous_names":["dr-dream/rest-to-rest-proxy"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Dr-Dream/rest-to-rest-proxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dr-Dream%2Frest-to-rest-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dr-Dream%2Frest-to-rest-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dr-Dream%2Frest-to-rest-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dr-Dream%2Frest-to-rest-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dr-Dream","download_url":"https://codeload.github.com/Dr-Dream/rest-to-rest-proxy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dr-Dream%2Frest-to-rest-proxy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272922270,"owners_count":25015766,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["camel","kotlin","quarkus","vertx","websocket"],"created_at":"2024-09-26T07:40:19.955Z","updated_at":"2026-02-11T13:33:32.576Z","avatar_url":"https://github.com/Dr-Dream.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Enterprise reverse proxy\n\nConsumes incoming HTTP requests and passes it to the remote agents through WebSocket.\n\n## Disclaimer\nThis project created only for academic proposes and not supposed to be run on production environments.\nUsing that code or binaries you should accept all security and performance risks.\n\n## Idea\n\nFor example, developer, have notebook and working remotely without any \"white\" IP (public accessible).\nBut you have a remote host with public static IP and don't have. So what to do?\n\nLet's imagine you run http service which accepts all http traffic and passes it back to you by any channel with all\npayload and headers. As soon you will get it you do the same request and to localhost to your \"development\" service, \nget your response and passes it all back to the requester.\n\n## How it works\n\nAgent is and service that connects to the GW and registers specific path to accept traffic. All exchange between\nAGENT and GW goes through Websocket\n\n```mermaid\nsequenceDiagram\n    participant DEVELOPMENT SERVICE\n    participant AGENT\n    participant GW\n    participant CLIENT\n    AGENT -\u003e\u003e GW: Websocket: SubscribeMessage (Registering path endpoint /someAgentPath)\n    GW -\u003e\u003e AGENT: Websocket: SubscriptionMessage with subscription key\n    loop \n        AGENT --\u003e\u003e GW: Websocket: KeepAlive Ping\n        GW --\u003e\u003e AGENT: Websocket: KeepAlive Pong\n    end\n    CLIENT -\u003e\u003e GW: Http request on /someAgentPath\n    GW -\u003e\u003e AGENT: Websocket: HttpRequestMessage (with headers and payload)\n    AGENT -\u003e\u003e DEVELOPMENT SERVICE: Http request (Host replaced)\n    DEVELOPMENT SERVICE -\u003e\u003e AGENT: Http response\n    AGENT -\u003e\u003e GW: Websocket: HttpResponseMessage (with headers and payload)\n    GW -\u003e\u003e CLIENT: Http response\n```\n\nTo start\n1) Compile and start gw which creates an WS for agent connections and start accepting http traffic\n2) Configure and start agent which h will connect to WS of gw and binds to specific to agent endpoint\n3) All traffic coming to that endpoint will be passed to agent without changes\n4) Agent getting traffic changes host on incoming http request and passes it to bound local address.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdr-dream%2Frest-to-rest-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdr-dream%2Frest-to-rest-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdr-dream%2Frest-to-rest-proxy/lists"}