{"repo":"pin/tftp","free":true,"listed":false,"github":"https://github.com/pin/tftp","clone":"git clone https://github.com/pin/tftp.git","description":"TFTP server and client library for Golang","language":"Go","stars":326,"topics":["go","golang","tftp","pxe"],"license":"MIT","category":"api-integrations-sdks","readme_excerpt":"TFTP server and client library for Golang ========================================= Implements: RFC 1350 - The TFTP Protocol (Revision 2) RFC 2347 - TFTP Option Extension RFC 2348 - TFTP Blocksize Option Partially implements (tsize server side only): RFC 2349 - TFTP Timeout Interval and Transfer Size Options Set of features is sufficient for PXE boot support. The package is cohesive to Golang io and implements io.ReaderFrom and io.WriterTo interfaces. That allows efficient data transmission without unnecessary memory copying and allocations. TFTP Server ----------- See gotftpd in golang-tftp-example repository for working code. TFTP Client ----------- Upload file to server: Download file from server: See goftp in golang-tftp-example repository for working code. TSize option ------------ PXE boot ROM often expects tsize option support from a server: client (e.g. computer that boots over the network) wants to know size of a download before the actual data comes. Server has to obtain stream size and send it to a client. Often it will happen automatically because TFTP library tries to check if io.Reader provided to ReadFrom method also satisfies io.Seeker interface ( os.File for instance) and uses Seek to determine file size. In case io.Reader you provide to ReadFrom in read handler does not satisfy io.Seeker interface or you do not want TFTP library to call Seek on your reader but still want to respond with tsize option during outgoing request you can use an OutgoingTransfer int","default_branch":null,"files":null,"tree":[],"storefront":"/r/pin","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/pin/tftp/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}