{"id":22170537,"url":"https://github.com/diegohce/nexer","last_synced_at":"2025-07-26T14:30:35.855Z","repository":{"id":139432392,"uuid":"60133261","full_name":"diegohce/nexer","owner":"diegohce","description":"Content based network multiplexer or redirector made with love and Go","archived":false,"fork":false,"pushed_at":"2018-11-16T22:04:37.000Z","size":53,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-06-20T11:14:34.457Z","etag":null,"topics":["connection-pool","connection-tee","go","golang","network","network-multiplexer","networking","redirects","tee","tool","tools","tunnel"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/diegohce.png","metadata":{"files":{"readme":"README.md","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-06-01T00:37:44.000Z","updated_at":"2019-04-13T18:49:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"e4583776-bb9a-4505-b269-4893ecfed737","html_url":"https://github.com/diegohce/nexer","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegohce%2Fnexer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegohce%2Fnexer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegohce%2Fnexer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegohce%2Fnexer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/diegohce","download_url":"https://codeload.github.com/diegohce/nexer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227685885,"owners_count":17804136,"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","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":["connection-pool","connection-tee","go","golang","network","network-multiplexer","networking","redirects","tee","tool","tools","tunnel"],"created_at":"2024-12-02T06:51:57.683Z","updated_at":"2024-12-02T06:51:59.929Z","avatar_url":"https://github.com/diegohce.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nexer\nAn easily extensible and content based, network multiplexer.\n\n# Usage \n\n## Nexer core arguments\n```\nUsage of nexer:\n  -bind string\n    \tBind [address]:port\n  -proto string\n    \tProtocol [tcp/udp] (default \"tcp\")\n  -tunnel string\n    \tTunnel type (see --tunnels) (default \"echo\")\n  -tunnels\n    \tTunnels list\n  -version\n    \tShows nexer current version\n```\n\n# Available tunnels\n```\nAvailable tunnel types:\n\ttee\n\tconnectionpool\n\tdirect\n\techo\n\tpip\n\tapt\n\tapt-experimental\n\turl\n```\n\n## tee tunnel\n\nSends the same request to both ```-main``` and ```-forward-to``` hosts. Responses from ```-forward-to``` host are logged into ```-logfile``` or to standard output.\n\n```\nUsage of tee:\n  -forward-to string\n    \tWhere to forward requests to\n  -logfile string\n    \tWhere to log the forwarded responses (default \"(stdout)\")\n  -main string\n    \tReal request/endpoint destination\n```\n\n\n## connectionpool\n\nConnection pooling between nexer and -dest\n```\nUsage of connectionpool:\n  -dest string\n    \tDestination address:port\n  -pool-size int\n    \tConnection pool size (default 1)\n```\n\n## echo tunnel\nEcho has no arguments. Implements an echo server.\n\n## direct tunnel\n\nDirect tunnel redirection\n\n```\nUsage of direct:\n  -dest string\n    \tDestination address:port\n  -proto string\n    \tProtocol [tcp/udp] (default \"tcp\")\n  -write-delay int\n      \tWrite delay in seconds (default 0)\n\n```\n\n## apt / apt-experimental tunnel\n\nThe apt-experimental tunnel is expected to be faster and more reliable than the plain apt tunnel.\n\n```\nUsage of apt:\n  -log-requests\n    \tShow http requests (default false)\n```\n\nTo create the tunnel run:\n```\n# ./nexer -bind :3142 -tunnel apt\nor\n# ./nexer -bind :3142 -tunnel apt-experimental\n```\n\n### To use apt-get with the tunnel\n\n```\n# apt-get -o \"Acquire::http::proxy=http://yourserver:3142\" update\n```\n\nor\n\n```\n# apt-get -o \"Acquire::http::proxy=http://yourserver:3142\" install \u003cpackage name\u003e\n```\n\n## pip tunnel\n\nTunnel to pip service (python packages index)\n\n```\nUsage of pip:\n  -dest string\n    \tDestination pip servername (will use https port 443 always!) (default \"pypi.python.org\")\n```\n\n### Create the pip tunnel\n\nTo create a tunnel simply run:\n```\n# ./nexer -bind :3143 -tunnel pip\n```\n\n### Installing python packages using the pip tunnel\n\n```\npip install --index-url \"http://yourserver:3143/simple/\" \u003cpython-package-name\u003e\n```\n\nor\n\n```\npip install --index-url \"http://yourserver:3143/simple/\" -r requirements.txt\n```\n\n### Searching for packages using the pip tunnel\n\n```\npip search --index http://yourserver:3143/pypi \u003cpython-package-name\u003e\n```\n\n\n## url tunnel\n```\nUsage of url:\n  -debug string\n    \tDestination address:port\n  -prod string\n    \tDestination address:port\n```\nRedirects to -prod. If ```debug=1``` is present in the querystring, redirects to -debug\n\n# Extending nexer (new tunnel dev)\n\nThe easiest way to commence is to look at the \n[echo tunnel](https://github.com/diegohce/nexer/blob/master/src/tunnel/echotunnel/echotunnel.go) and the \n[direct tunnel](https://github.com/diegohce/nexer/blob/master/src/tunnel/directtunnel/directtunnel.go) as an example.\n\nAlso check the ```import``` statement in [nexer.go](https://github.com/diegohce/nexer/blob/master/src/nexer.go)\nwhere tunnels **must** be imported to be available.\n\n## Building \n\nAfter setting Go environment values \n([goenv.sh](https://github.com/diegohce/nexer/blob/master/goenv.sh) might help), \ngo to ```src``` directory and run from the command line:\n\n```go build -tags all nexer.go version.go```\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiegohce%2Fnexer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiegohce%2Fnexer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiegohce%2Fnexer/lists"}