{"id":20690312,"url":"https://github.com/ftl/rigproxy","last_synced_at":"2025-10-15T13:45:03.789Z","repository":{"id":48967800,"uuid":"185670628","full_name":"ftl/rigproxy","owner":"ftl","description":"A proxy for Hamlib rigctld.","archived":false,"fork":false,"pushed_at":"2023-12-15T13:31:32.000Z","size":77,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-22T17:04:40.944Z","etag":null,"topics":["ham-radio","hamlib","hamradio"],"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/ftl.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,"zenodo":null}},"created_at":"2019-05-08T19:52:58.000Z","updated_at":"2023-07-15T19:10:55.000Z","dependencies_parsed_at":"2023-12-10T16:26:57.736Z","dependency_job_id":"26fe0e5c-f97c-4779-8419-bafd89b8f1cb","html_url":"https://github.com/ftl/rigproxy","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/ftl/rigproxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftl%2Frigproxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftl%2Frigproxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftl%2Frigproxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftl%2Frigproxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ftl","download_url":"https://codeload.github.com/ftl/rigproxy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftl%2Frigproxy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279084086,"owners_count":26099770,"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-15T02:00:07.814Z","response_time":56,"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":["ham-radio","hamlib","hamradio"],"created_at":"2024-11-16T23:12:37.001Z","updated_at":"2025-10-15T13:45:03.746Z","avatar_url":"https://github.com/ftl.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rigproxy\n\n[![GoDoc](https://godoc.org/github.com/ftl/rigproxy?status.svg)](https://godoc.org/github.com/ftl/rigproxy)\n\nThe rigproxy connects to a [Hamlib](https://github.com/Hamlib/Hamlib) `rigctld` server and accepts incoming connections from clients that speak the Hamlib net (model #2) protocol. Incoming requests are forwarded to the destination server, responses of reading requests are cached for a configurable amount of time.\n\nThe main purpose of rigproxy is to reduce the load on the destination server and rig by reducing the amount of reading requests if there run multiple clients concurrently.\n\nIn addition, rigproxy also contains a client library that allows to access `rigctld` servers through a native Go programming interface:\n\n```go\nconn, err := client.Open(\"localhost:4532\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer conn.Close()\n\nfrequency, err := conn.Frequency(context.Background())\nif err != nil {\n\tlog.Fatal(err)\n}\nlog.Printf(\"current frequency: %.0fHz\", frequency)\n```\n\nSee [godoc](https://godoc.org/github.com/ftl/rigproxy/pkg/client) for more information.\n\n## Usage\n\n`rigproxy` provides a CLI with the following flags:\n\n* --destination -d \u003chost:port\u003e # the address of the destination `rigctld` server\n* --listen -l \u003cif:port\u003e # the listening interface and port, `if` may be empty to bind to all available network interfaces\n* --lifetime -L \u003cduration\u003e # the duration that responses to reading requests are cached\n\nFor example:\n\n```\nrigproxy -d localhost:4534 -l :4532 -L 200ms\n```\n\n## Development\n\nTo use your local copy of rigproxy in other projects, put the following into the go.mod file of your project:\n\n```\nreplace github.com/ftl/rigproxy =\u003e \u003cpath_to_your_local_copy\u003e\n```\n\n## Disclaimer\nI develop this tool for myself and just for fun in my free time. If you find it useful, I'm happy to hear about that. If you have trouble using it, you have all the source code to fix the problem yourself (although pull requests are welcome).\n\n## License\nThis tool is published under the [MIT License](https://www.tldrlegal.com/l/mit).\n\nCopyright [Florian Thienel](http://thecodingflow.com/)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fftl%2Frigproxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fftl%2Frigproxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fftl%2Frigproxy/lists"}