[−][src]Crate async_tftp
This library provides TFTP async implementation. Currently it implements only server side.
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 (RRQ) and write (WRQ) 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
Handlerfor 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(()) }) }
Add in Cargo.toml:
async-tftp = "0.2"
The above will use async-std by default, if you prefer tokio use:
async-tftp = { version = "0.2", default-features = false, features = ["use-tokio"] }
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 |