{"id":30055165,"url":"https://github.com/eoan-ermine/tftp","last_synced_at":"2026-02-27T08:42:14.376Z","repository":{"id":64176520,"uuid":"573905604","full_name":"eoan-ermine/tftp","owner":"eoan-ermine","description":"A simple header-only Trivial File Transfer Protocol (TFTP) packets parsing and serialization library","archived":false,"fork":false,"pushed_at":"2025-03-14T18:34:14.000Z","size":2143,"stargazers_count":3,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-07T21:49:46.105Z","etag":null,"topics":["header-only","tftp","tftp-protocol"],"latest_commit_sha":null,"homepage":"https://eoanermine.com/tftp_common/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eoan-ermine.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":"2022-12-03T20:01:00.000Z","updated_at":"2025-03-14T18:33:43.000Z","dependencies_parsed_at":"2024-03-22T19:34:35.873Z","dependency_job_id":"4b6408a2-4090-43ce-8104-d955ad8ab0c1","html_url":"https://github.com/eoan-ermine/tftp","commit_stats":null,"previous_names":["eoan-ermine/tftp_common","eoan-ermine/tftp"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/eoan-ermine/tftp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eoan-ermine%2Ftftp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eoan-ermine%2Ftftp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eoan-ermine%2Ftftp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eoan-ermine%2Ftftp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eoan-ermine","download_url":"https://codeload.github.com/eoan-ermine/tftp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eoan-ermine%2Ftftp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29888226,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T08:34:21.514Z","status":"ssl_error","status_checked_at":"2026-02-27T08:32:38.035Z","response_time":57,"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":["header-only","tftp","tftp-protocol"],"created_at":"2025-08-07T21:48:02.891Z","updated_at":"2026-02-27T08:42:14.357Z","avatar_url":"https://github.com/eoan-ermine.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TFTP Common\n\nA simple header-only Trivial File Transfer Protocol (*TFTP*) packets parsing and serialization library.\n\n[RFC 1350](https://datatracker.ietf.org/doc/html/rfc1350) (*TFTP Protocol Revision 2*) compilant, [RFC 2347](https://datatracker.ietf.org/doc/html/rfc2347) (*TFTP Option Extension*) support. [RFC 2348](https://datatracker.ietf.org/doc/html/rfc2348) (*TFTP Blocksize Option*), [RFC 2349](https://datatracker.ietf.org/doc/html/rfc2349) (*TFTP Timeout Interval and Transfer Size Options*) compatible.\n\n![C++ Standard](https://img.shields.io/badge/C%2B%2B-17-blue) ![](https://github.com/eoan-ermine/tftp/actions/workflows/build_and_test.yml/badge.svg) ![](https://github.com/eoan-ermine/tftp/actions/workflows/documentation.yml/badge.svg) ![](https://github.com/eoan-ermine/tftp/actions/workflows/style.yml/badge.svg) [![](https://img.shields.io/badge/docs-blue)](https://eoanermine.com/tftp/)\n\n## Supported platforms\n\n|               |                          |               |               |\n|---------------|--------------------------|---------------|---------------|\n| **Platform name** | Windows | Linux | MacOS |\n| **Minimum required version** | 98 | --- | --- |\n\n## Dependencies\n\n| Dependency name                     | Minimum required version | Ubuntu 22.04                         |\n|-------------------------------------|--------------------------|--------------------------------------|\n| C++                                 | C++17                    | sudo apt-get install build-essential |\n| Doxygen (optional)                  | ---                      | sudo apt-get install doxygen         |\n| ClangFormat (development, optional) | ---                      | sudo apt-get install clang-format    |\n\n## Quick start\n\n1. Download and install CMake. Version 3.12.0 is the minimum required.\n2. Open a shell. Your development tools must be reachable from this shell through the PATH environment variable.\n3. Create a build directory, go to this directory:\n```shell\nmkdir build\ncd build\n```\n4. Execute this command in the shell replacing `path/to/tftp/source/root` with the path to the root of your tftp source tree:\n```shell\ncmake path/to/tftp/source/root\n```\n5. After CMake has finished running, proceed to use IDE project files, or start the build from the build directory:\n```shell\ncmake --build .\n```\nThe --build option tells cmake to invoke the underlying build tool (make, ninja, xcodebuild, msbuild, etc.)\n\nThe underlying build tool can be invoked directly, of course, but the --build option is portable.\n\n6. After tftp has finished building, install it from the build directory:\n```shell\ncmake --build . --target install\n```\n\nThe --target option with install parameter in addition to the --build option tells cmake to build the install target.\n\n## Options and variables\n\nVariables customize how the build will be generated. Options are boolean variables, with possible values ON/OFF. Options and variables are defined on the CMake command line like this:\n\n```shell\ncmake -DVARIABLE=value path/to/tftp/source\n```\n\n### CMake variables\n\n* `BUILD_TESTS: BOOL`\n\nAdds test build targets as a dependencies of the default build target. Defaults to OFF.\n\n* `BUILD_EXAMPLES: BOOL`\n\nAdds examples build targets as a dependencies of the default build target. Defaults to OFF.\n\n## CMake targets\n\n* The `format` target (i.e `ninja format`) will run clang-format on all project files\n* The `check-format` target (i.e `ninja check-format`) will verify that project's code follows formatting conventions\n* The `docs` target (i.e `ninja docs`) will generate documentation using doxygen\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feoan-ermine%2Ftftp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feoan-ermine%2Ftftp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feoan-ermine%2Ftftp/lists"}