{"id":13815465,"url":"https://github.com/benoitc/hroute","last_synced_at":"2025-08-15T15:24:21.254Z","repository":{"id":1462423,"uuid":"1698823","full_name":"benoitc/hroute","owner":"benoitc","description":"simple HTTP proxy based on tproxy","archived":false,"fork":false,"pushed_at":"2011-05-05T21:46:31.000Z","size":132,"stargazers_count":28,"open_issues_count":2,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-08-10T00:38:54.765Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/benoitc.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-05-03T23:34:34.000Z","updated_at":"2020-01-21T11:11:14.000Z","dependencies_parsed_at":"2022-07-29T14:19:09.530Z","dependency_job_id":null,"html_url":"https://github.com/benoitc/hroute","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/benoitc/hroute","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benoitc%2Fhroute","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benoitc%2Fhroute/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benoitc%2Fhroute/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benoitc%2Fhroute/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/benoitc","download_url":"https://codeload.github.com/benoitc/hroute/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benoitc%2Fhroute/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270586489,"owners_count":24611317,"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-15T02:00:12.559Z","response_time":110,"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":[],"created_at":"2024-08-04T04:03:31.491Z","updated_at":"2025-08-15T15:24:21.216Z","avatar_url":"https://github.com/benoitc.png","language":"Python","readme":"hroute\n------\n\nsimple HTTP proxy based on `tproxy \u003chttp://github.com/benoitc/tproxy\u003e`_. \n\nFeatures\n++++++++\n\n- location rewriting\n- links rewriting to handle proxy / paths\n- simple configuration\n- vhosts support\n- logging (coming)\n- authentification (coming)\n\n\nRequirements\n------------\n\n- `Python \u003chttp://python.org\u003e`_ 2.6 and sup (Python 3 not suppported yet)\n- `gevent \u003chttp://gevent.org\u003e`_ \u003e= 0.13.4\n- `setproctitle \u003chttp://code.google.com/p/py-setproctitle/\u003e`_ \u003e= 1.1.2\n- `tproxy  \u003chttp://github.com/benoitc/http-parser\u003e`_ \u003e= 0.5.2\n- `http-parser \u003chttp://github.com/benoitc/http-parser\u003e`_ \u003e= 0.3.3\n- `lxml \u003chttp://lxml.de\u003e`_ \n\nInstall\n-------\n\n::\n    \n    $ pip install -r https://github.com/downloads/benoitc/hroute/requirements.txt\n    $ pip install hroute\n\n\nUsage\n-----\n\nCreate a configuration file named **route** in /var/spool/hroute\n(default path) or any folder you want, for example in /tmp, put the\nfollowing configuration::\n\n    {\n        \"all\": {\n            \"routes\": {\n                \"/\": {\n                    \"remote\": \"benoitc.io:80\",\n                    \"rewrite_response\": true\n                },\n                \"/local\": {\n                    \"remote\": \"127.0.0.1:8000\"\n                },\n                \"/google\": {\n                    \"remote\": \"google.com:80\"\n                },\n                \"/gunicorn\": {\n                    \"remote\": \"gunicorn.org:80\",\n                    \"rewrite_response\": true\n                },\n                \"/googles\": {\n                    \"remote\": \"encrypted.google.com:443\",\n                    \"ssl\": true,\n                    \"rewrite_response\": true\n                }\n            }\n        }\n    }\n\n\nthen launch hroute::\n\n    $ hroute -s /tmp -w 3\n\nand go on `http://127.0.0.1:5000/gunicorn\n\u003chttp://127.0.0.1:5000/gunicorn\u003e`_. You should see the gunicorn.org\nwebsite.\n\n\nMore features soon.\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenoitc%2Fhroute","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenoitc%2Fhroute","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenoitc%2Fhroute/lists"}