{"id":20828928,"url":"https://github.com/darvid/emissary","last_synced_at":"2025-10-05T05:16:43.579Z","repository":{"id":139776656,"uuid":"78910092","full_name":"darvid/emissary","owner":"darvid","description":"A TCP service multiplexer","archived":false,"fork":false,"pushed_at":"2017-05-04T13:54:12.000Z","size":8,"stargazers_count":19,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-07T21:39:57.488Z","etag":null,"topics":["golang","golang-application","multiplexer","networking","routing","tcp-service-multiplexer"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/darvid.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":"2017-01-14T03:47:24.000Z","updated_at":"2025-02-19T23:37:21.000Z","dependencies_parsed_at":"2024-06-20T14:03:39.790Z","dependency_job_id":"ed74d9e8-e8e1-41e6-9c96-8154ccd71bf8","html_url":"https://github.com/darvid/emissary","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/darvid/emissary","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darvid%2Femissary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darvid%2Femissary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darvid%2Femissary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darvid%2Femissary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darvid","download_url":"https://codeload.github.com/darvid/emissary/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darvid%2Femissary/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278411261,"owners_count":25982368,"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-10-05T02:00:06.059Z","response_time":54,"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":["golang","golang-application","multiplexer","networking","routing","tcp-service-multiplexer"],"created_at":"2024-11-17T23:18:53.409Z","updated_at":"2025-10-05T05:16:43.552Z","avatar_url":"https://github.com/darvid.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# emissary: A TCP service multiplexer\n\n[![Coveralls](https://img.shields.io/coveralls/darvid/emissary.svg)](https://coveralls.io/github/darvid/emissary) [![Go Report Card](http://goreportcard.com/badge/github.com/darvid/emissary)](https://goreportcard.com/report/github.com/darvid/emissary) [![Travis](https://img.shields.io/travis/darvid/emissary.svg)](https://travis-ci.org/darvid/emissary)\n\n[![asciicast](https://asciinema.org/a/99252.png)](https://asciinema.org/a/99252)\n\n**emissary** provides a command to multiplex TCP services on the same port,\nand route connections to different upstream addresses based on their starting\nbytes.\n\nUpstreams are configured through *upstream rules*, which are a simple\nregexp/remote address pair.\n\n## Installation\n\n### With go get\n\n```shell\n$ go get github.com/darvid/emissary\n```\n\n### Binaries\n\nThe latest releases can be downloaded from\n[Github](https://github.com/darvid/emissary/releases).\n\n### From source\n\n```shell\n$ git clone https://github.com/darvid/emissary.git\n$ cd emissary\n# Requires Glide to be installed - https://glide.sh/\n$ glide install\n$ make build\n```\n\n## Examples\n\n```shell\n# Forward all HTTP GET requests to httpbin.org\n$ emissary -bind localhost:1080 -upstream '/^GET/:httpbin.org:80'\n\n# Forward SOCKS5 traffic to a local SOCKS5 server\n$ emissary -bind localhost:1080 -upstream '/^\\x05/:localhost:1081'\n```\n\nAny number of upstreams may be chained together.\n\n## Usage\n\n    Usage of emissary:\n      -alsologtostderr\n            log to standard error as well as files\n      -bind string\n            bind address (default \"localhost:1080\")\n      -buffersize int\n            buffer size for first read (default 4096)\n      -log_backtrace_at value\n            when logging hits line file:N, emit a stack trace (default :0)\n      -log_dir string\n            If non-empty, write log files in this directory\n      -logtostderr\n            log to standard error instead of files\n      -stderrthreshold value\n            logs at or above this threshold go to stderr\n      -upstream value\n            list of upstream rules (default [])\n      -v value\n            log level for V logs\n      -version\n            show version\n      -vmodule value\n            comma-separated list of pattern=N settings for file-filtered logging\n\n# Similar projects\n\nA few projects exist that provide TCP service muxing. The ones mentioned below\nare libraries which require writing custom applications or scripts, which may be\npreferential to some, depending on the use case.\n\n* [Emissary](https://github.com/craSH/Emissary)\n* [node-port-mux](https://github.com/robertklep/node-port-mux)\n* [cmux](https://github.com/soheilhy/cmux)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarvid%2Femissary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarvid%2Femissary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarvid%2Femissary/lists"}