[−][src]Crate async_tftp
This library provides TFTP async implementation.
Currently it implements only server side which can serve read requests. This is the most used scenario in our modern days.
The following RFCs are implemented:
- RFC 1350 - The TFTP Protocol (Revision 2).
- RFC 2347 - TFTP Option Extension.
- RFC 2348 - TFTP Blocksize Option.
- RFC 2349 - TFTP Timeout Interval and Transfer Size Options.
Features:
- Async implementation.
- Serve read requests.
- Unlimited transfer file size (block number roll-over).
- You can set non-standard reply
timeout
. This is useful for faster file transfer in unstable environments. - You can set block size limit. This is useful if you are accessing client through a VPN.
- You can implement your own
Handler
for more advance cases than just serving a directory.
Example
ⓘThis example is not tested
use async_tftp::server::TftpServerBuilder; use async_tftp::Result; fn main() -> Result<()> { async_std::task::block_on(async { let tftpd = TftpServerBuilder::with_dir_ro(".")?.build().await?; tftpd.serve().await?; Ok(()) }) }
Modules
log | Utilities for logs. |
packet | Packet definitions that are needed in public API. |
server | Server side implementation. |
Enums
Error | Error type of this crate. |
Type Definitions
Result | Type alias to |
Attribute Macros
async_trait | Re-export of |