diff options
author | Carl Lerche <me@carllerche.com> | 2019-03-19 14:58:59 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-19 14:58:59 -0700 |
commit | cdde2e7a273cbab2085b822efcf54c6bec822681 (patch) | |
tree | 68c09200286f2266027230ac4ffc51d459857ad7 /src/lib.rs | |
parent | 85487727d41574020793fbe0025a9dafc4890a70 (diff) |
chore: repo maintenance + no path dependencies (#991)
- Move `tokio` into its own directory.
- Remove `path` dependencies.
- Run tests with once with crates.io dep and once with patched dep.
Diffstat (limited to 'src/lib.rs')
-rw-r--r-- | src/lib.rs | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/src/lib.rs b/src/lib.rs deleted file mode 100644 index b60d2fb3..00000000 --- a/src/lib.rs +++ /dev/null @@ -1,155 +0,0 @@ -#![doc(html_root_url = "https://docs.rs/tokio/0.1.17")] -#![deny(missing_docs, warnings, missing_debug_implementations)] -#![cfg_attr( - feature = "async-await-preview", - feature(async_await, await_macro, futures_api,) -)] - -//! A runtime for writing reliable, asynchronous, and slim applications. -//! -//! Tokio is an event-driven, non-blocking I/O platform for writing asynchronous -//! applications with the Rust programming language. At a high level, it -//! provides a few major components: -//! -//! * A multi threaded, work-stealing based task [scheduler][runtime]. -//! * A [reactor] backed by the operating system's event queue (epoll, kqueue, -//! IOCP, etc...). -//! * Asynchronous [TCP and UDP][net] sockets. -//! * Asynchronous [filesystem][fs] operations. -//! * [Timer][timer] API for scheduling work in the future. -//! -//! Tokio is built using [futures] as the abstraction for managing the -//! complexity of asynchronous programming. -//! -//! Guide level documentation is found on the [website]. -//! -//! [website]: https://tokio.rs/docs/getting-started/hello-world/ -//! [futures]: http://docs.rs/futures/0.1 -//! -//! # Examples -//! -//! A simple TCP echo server: -//! -//! ```no_run -//! extern crate tokio; -//! -//! use tokio::prelude::*; -//! use tokio::io::copy; -//! use tokio::net::TcpListener; -//! -//! fn main() { -//! // Bind the server's socket. -//! let addr = "127.0.0.1:12345".parse().unwrap(); -//! let listener = TcpListener::bind(&addr) -//! .expect("unable to bind TCP listener"); -//! -//! // Pull out a stream of sockets for incoming connections -//! let server = listener.incoming() -//! .map_err(|e| eprintln!("accept failed = {:?}", e)) -//! .for_each(|sock| { -//! // Split up the reading and writing parts of the -//! // socket. -//! let (reader, writer) = sock.split(); -//! -//! // A future that echos the data and returns how -//! // many bytes were copied... -//! let bytes_copied = copy(reader, writer); -//! -//! // ... after which we'll print what happened. -//! let handle_conn = bytes_copied.map(|amt| { -//! println!("wrote {:?} bytes", amt) -//! }).map_err(|err| { -//! eprintln!("IO error {:?}", err) -//! }); -//! -//! // Spawn the future as a concurrent task. -//! tokio::spawn(handle_conn) -//! }); -//! -//! // Start the Tokio runtime -//! tokio::run(server); -//! } -//! ``` - -macro_rules! if_runtime { - ($($i:item)*) => ($( - #[cfg(any(feature = "rt-full"))] - $i - )*) -} - -#[macro_use] -extern crate futures; - -#[cfg(feature = "io")] -extern crate bytes; -#[cfg(feature = "reactor")] -extern crate mio; -#[cfg(feature = "rt-full")] -extern crate num_cpus; -#[cfg(feature = "codec")] -extern crate tokio_codec; -#[cfg(feature = "rt-full")] -extern crate tokio_current_thread; -#[cfg(feature = "fs")] -extern crate tokio_fs; -#[cfg(feature = "io")] -extern crate tokio_io; -#[cfg(feature = "reactor")] -extern crate tokio_reactor; -#[cfg(feature = "sync")] -extern crate tokio_sync; -#[cfg(feature = "tcp")] -extern crate tokio_tcp; -#[cfg(feature = "rt-full")] -extern crate tokio_threadpool; -#[cfg(feature = "timer")] -extern crate tokio_timer; -#[cfg(feature = "udp")] -extern crate tokio_udp; - -#[cfg(feature = "async-await-preview")] -extern crate tokio_async_await; - -#[cfg(all(unix, feature = "uds"))] -extern crate tokio_uds; - -#[cfg(feature = "timer")] -pub mod clock; -#[cfg(feature = "codec")] -pub mod codec; -#[cfg(feature = "fs")] -pub mod fs; -#[cfg(feature = "io")] -pub mod io; -#[cfg(any(feature = "tcp", feature = "udp", feature = "uds"))] -pub mod net; -pub mod prelude; -#[cfg(feature = "reactor")] -pub mod reactor; -#[cfg(feature = "sync")] -pub mod sync; -#[cfg(feature = "timer")] -pub mod timer; -pub mod util; - -if_runtime! { - extern crate tokio_executor; - extern crate tokio_trace_core; - pub mod executor; - pub mod runtime; - - pub use executor::spawn; - pub use runtime::run; -} - -// ===== Experimental async/await support ===== - -#[cfg(feature = "async-await-preview")] -mod async_await; - -#[cfg(feature = "async-await-preview")] -pub use async_await::{run_async, spawn_async}; - -#[cfg(feature = "async-await-preview")] -pub use tokio_async_await::await; |