{"id":18326808,"url":"https://github.com/caibingcheng/channel","last_synced_at":"2026-04-24T16:02:43.946Z","repository":{"id":240030180,"uuid":"759780969","full_name":"caibingcheng/channel","owner":"caibingcheng","description":"Transmit message from A to B","archived":false,"fork":false,"pushed_at":"2024-05-20T09:45:12.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-09T16:53:13.671Z","etag":null,"topics":["linux","redirection","socket"],"latest_commit_sha":null,"homepage":"","language":"C++","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/caibingcheng.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":"2024-02-19T10:20:26.000Z","updated_at":"2024-05-20T09:45:15.000Z","dependencies_parsed_at":"2025-04-09T16:42:07.385Z","dependency_job_id":null,"html_url":"https://github.com/caibingcheng/channel","commit_stats":null,"previous_names":["caibingcheng/channel"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/caibingcheng/channel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caibingcheng%2Fchannel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caibingcheng%2Fchannel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caibingcheng%2Fchannel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caibingcheng%2Fchannel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/caibingcheng","download_url":"https://codeload.github.com/caibingcheng/channel/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caibingcheng%2Fchannel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32230421,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["linux","redirection","socket"],"created_at":"2024-11-05T19:08:15.466Z","updated_at":"2026-04-24T16:02:43.916Z","avatar_url":"https://github.com/caibingcheng.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"### channel\n\n**channel** is a output redirection tool on Linux, relies on the network application layer. As no authentication is required, it is not recommended to use it in a public network.\n\n### Usage\n\n#### Basic\n\nServer:\n```shell\n$ echo \"Hello, World!\" | channel -s\nHello, World!\n```\n\nClient:\n```shell\n$ channel\nHello, World!\n```\n\n#### Embedded system\n\nIt is especially beneficial in embedded systems when resources are insufficient for log files or log processing.\n\nOn some embedded systems, the disk space is limited, we cannot store full log files when doing performance testing. **channel** can transmit log in realtime to the host, and the host can write to file or process it.\n\nOn the other hand, the embedded system is usually not equipped with powerful environment, such as python/ruby, now we can transmit the output to the host and process it.\n\nEmbedded system:\n```shell\n$ echo \"Hello, World!\" | channel -s\nHello, World!\n# or transmit top command output\n$ top -n 1000 -d 1 -b | channel -s\n# or transmit application output\n$ \u003cyour app\u003e 2\u003e\u00261 | channel -s\n```\n\nHost:\n```shell\n# just receive and write to file, because the host disk space is sufficient\n$ channel -i \u003cembedded system ip\u003e | tee log.txt\n# or receive and process by another command, such as python script\n$ channel -i \u003cembedded system ip\u003e | \u003canother command\u003e\n```\n\n#### Share\n\nShare realtime log with teamates, not copy files anymore.\n\nYour machine:\n```shell\n$ echo \"Hello, World!\" | channel -s\nHello, World!\n# or transmit log from embedded system\n$ channel -i \u003cembedded system ip\u003e | channel -s\n```\n\nYour teamate's machine:\n```shell\n$ channel -i \u003cyour machine ip\u003e\nHello, World!\n```\n\n### Compile\n\n```shell\n$ make\n$ make install\n```\n\nOr cross compile for ARM:\n```shell\n$ make CROSS_COMPILE=aarch64-linux-gnu-\n$ make install\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaibingcheng%2Fchannel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaibingcheng%2Fchannel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaibingcheng%2Fchannel/lists"}