1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
#![crate_name = "ftp"] #![crate_type = "lib"] //! ftp is an FTP client written in Rust. //! //! ### Usage //! //! Here is a basic usage example: //! //! ```rust //! use ftp::FtpStream; //! let mut ftp_stream = FtpStream::connect("127.0.0.1:21").unwrap_or_else(|err| //! panic!("{}", err) //! ); //! let _ = ftp_stream.quit(); //! ``` //! //! ### FTPS //! //! The client supports FTPS on demand. To enable it the client should be //! compiled with feature `openssl` enabled what requires //! [openssl](https://crates.io/crates/openssl) dependency. //! //! The client uses explicit mode for connecting FTPS what means you should //! connect the server as usually and then switch to the secure mode (TLS is used). //! For better security it's the good practice to switch to the secure mode //! before authentication. //! //! ### FTPS Usage //! //! ```ignore //! use ftp::FtpStream; //! let mut ftp_stream = FtpStream::connect("127.0.0.1:21").unwrap(); //! // Switch to the secure mode //! let (mut ftp_stream, _) = ftp_stream.secure(); //! ftp_stream.login("anonymous", "anonymous").unwrap(); //! // Do other secret stuff //! // Switch back to the insecure mode (if required) //! let (mut ftp_stream, _) = ftp_stream.insecure(); //! // Do all public stuff //! let _ = ftp_stream.quit(); //! ``` //! #[macro_use] extern crate lazy_static; extern crate regex; extern crate chrono; #[cfg(feature = "secure")] extern crate openssl; mod ftp; mod data_stream; pub mod types; pub mod status; pub use self::ftp::FtpStream; pub use self::types::FtpError;