Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Executor agnostic async TFTP implementation

License

NotificationsYou must be signed in to change notification settings

oblique/async-tftp-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

licensecrates.iodocs

Executor agnostic async TFTP implementation, written withsmolbuilding blocks. 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.
  • Works with any runtime/executor.
  • Serve read (RRQ) and write (WRQ) requests.
  • Unlimited transfer file size (block number roll-over).
  • You can set non-standard replytimeout. This is useful for fasterfile transfer in unstable environments.
  • You can setblock size limit. This is useful if you are accessingclient through a VPN.
  • You can implement your ownHandler for more advance cases thanjust serving a directory. Checktftpd-targz.rs for an example.

Example

use async_tftp::server::TftpServerBuilder;use async_tftp::Result;#[tokio::main]// or any other runtime/executorasyncfnmain() ->Result<()>{let tftpd =TftpServerBuilder::with_dir_ro(".")?.build().await?;    tftpd.serve().await?;Ok(())}

Add inCargo.toml:

[dependencies]async-tftp ="0.3"# or any other runtime/executortokio = {version ="1",features = ["rt-multi-thread","macros"] }

Running examples with cargo

There are some examples included with this crate.You can run them from a source checkout with cargo:

$ cargo run --example tftpd-dirTFTP directory: ...Listening on: 0.0.0.0:6969^C$ cargo run --example tftpd-targz<archive-path>Listening on: 0.0.0.0:6969^C

License

MIT


[8]ページ先頭

©2009-2025 Movatter.jp