[][src]Crate async_tftp

This library provides TFTP async implementation.

Currently it implements only server side which can serve read requests, which is the most prominent scenario used.

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 Result<T, Error>.

Attribute Macros

async_trait

Re-export of async_trait:async_trait.