{"id":37103307,"url":"https://github.com/balacode/udpt","last_synced_at":"2026-01-14T12:30:43.629Z","repository":{"id":57580888,"uuid":"361708664","full_name":"balacode/udpt","owner":"balacode","description":"UDP Transport: compress, encrypt and send any data reliably over unreliable UDP connections","archived":false,"fork":false,"pushed_at":"2021-06-10T15:57:23.000Z","size":670,"stargazers_count":44,"open_issues_count":0,"forks_count":6,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-16T09:47:37.004Z","etag":null,"topics":["communication-protocol","messaging","udp"],"latest_commit_sha":null,"homepage":"","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/balacode.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}},"created_at":"2021-04-26T10:28:04.000Z","updated_at":"2025-01-19T19:39:32.000Z","dependencies_parsed_at":"2022-09-26T19:30:54.816Z","dependency_job_id":null,"html_url":"https://github.com/balacode/udpt","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/balacode/udpt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/balacode%2Fudpt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/balacode%2Fudpt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/balacode%2Fudpt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/balacode%2Fudpt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/balacode","download_url":"https://codeload.github.com/balacode/udpt/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/balacode%2Fudpt/sbom","scorecard":{"id":224288,"data":{"date":"2025-08-11","repo":{"name":"github.com/balacode/udpt","commit":"49cb13767f65fb0b0dd9a7bf2d2894e9ccbc5daa"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-17T03:19:59.472Z","repository_id":57580888,"created_at":"2025-08-17T03:19:59.472Z","updated_at":"2025-08-17T03:19:59.472Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28420773,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T10:47:48.104Z","status":"ssl_error","status_checked_at":"2026-01-14T10:46:19.031Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["communication-protocol","messaging","udp"],"created_at":"2026-01-14T12:30:42.961Z","updated_at":"2026-01-14T12:30:43.591Z","avatar_url":"https://github.com/balacode.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"## udpt\nUDP Transport\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/balacode/udpt)](https://goreportcard.com/report/github.com/balacode/udpt)\n[![godoc](https://godoc.org/github.com/balacode/udpt?status.svg)](https://godoc.org/github.com/balacode/udpt)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\nCompresses, encrypts and transfers data between a sender and receiver using UDP protocol.\n\n## Features and Design Aims:\n- Avoid the overhead of establishing a TCP or TCP+TLS handshake.\n- Reliable transfer of data using an unreliable UDP connection.\n- Uses AES-256 symmetric cipher for encryption.\n- Uses zlib library for data compression.\n- No third-party dependencies. Only uses the standard library.\n- Readable, understandable code with explanatory comments.\n\n## Installation:\n\n```bash\n    go get github.com/balacode/udpt\n```\n\n## Hello World:\n\nThis demo starts a Receiver which listens for incoming data, then\nsends a \"Hello World\" to the receiver using Sender.SendString().\n\n```go\npackage main\n\nimport (\n    \"fmt\"\n\n    \"github.com/balacode/udpt\"\n)\n\n// main demo\nfunc main() {\n    // secret encryption key shared by the Sender and Receiver\n    cryptoKey := []byte(\"aA2Xh41FiC4Wtj3e5b2LbytMdn6on7P0\")\n    //\n    // set-up and run the receiver\n    rc := udpt.Receiver{Port: 9876, CryptoKey: cryptoKey,\n        Receive: func(k string, v []byte) error {\n            fmt.Println(\"Received k:\", k, \"v:\", string(v))\n            return nil\n        }}\n    go func() { _ = rc.Run() }()\n    //\n    // send a message to the receiver\n    err := udpt.SendString(\"127.0.0.1:9876\", \"main\", \"Hello World!\", cryptoKey)\n    if err != nil {\n        fmt.Println(\"failed sending:\", err)\n    }\n    rc.Stop()\n} //                                                                        main\n```\n\n## Security Notice:\nThis is a new project and its use of cryptography has not been reviewed by experts. While I make use of established crypto algorithms available in the standard Go library and would not \"roll my own\" encryption, there may be weaknesses in my application of the algorithms. Please use caution and do your own security asessment of the code. At present, this library uses AES-256 in Galois Counter Mode to encrypt each packet of data, including its headers, and SHA-256 for hashing binary resources that are being transferred.\n\n## Version History:\nThis project is in its DRAFT stage: very unstable. At this point it works, but the API may change rapidly.\n\n## Ideas:\n- Create a drop-in replacement for TCP and TLS connections\n- Implement some form of transfer control\n- Improve performance\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbalacode%2Fudpt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbalacode%2Fudpt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbalacode%2Fudpt/lists"}