Skip to content

Commit 7202936

Browse files
authored
Merge pull request #219 from kpp/reduce_tokio_deps
Remove a lot of unnecessary tokio deps (udp, fs, uds and so on)
2 parents 7255478 + bb4ef26 commit 7202936

File tree

11 files changed

+41
-27
lines changed

11 files changed

+41
-27
lines changed

Cargo.toml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,26 @@ byteorder = "1.0"
2525
sha1 = "0.6"
2626
base64 = "0.10.0"
2727
futures = { version = "0.1", optional = true }
28-
tokio = { version = "0.1", optional = true }
28+
tokio-io = { version = "0.1", optional = true }
2929
tokio-tls = { version = "0.2.0", optional = true }
30+
tokio-tcp = { version = "0.1", optional = true }
31+
tokio-codec = { version = "0.1", optional = true }
32+
tokio-reactor = { version = "0.1", optional = true }
3033
bytes = { version = "0.4", optional = true }
3134
native-tls = { version = "0.2.1", optional = true }
3235

3336
[dev-dependencies]
3437
futures-cpupool = "0.1"
3538

39+
[dev-dependencies.tokio]
40+
version = "0.1"
41+
default-features = false
42+
features = ["codec", "tcp", "rt-full"]
43+
3644
[features]
3745
default = ["sync", "sync-ssl", "async", "async-ssl"]
3846
sync = []
3947
sync-ssl = ["native-tls", "sync"]
40-
async = ["tokio", "bytes", "futures"]
48+
async = ["bytes", "futures", "tokio-io", "tokio-tcp", "tokio-reactor", "tokio-codec"]
4149
async-ssl = ["native-tls", "tokio-tls", "async"]
4250
nightly = ["hyper/nightly"]

src/client/async.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@
4646
4747
pub use futures::Future;
4848
use hyper::header::Headers;
49-
pub use tokio::codec::Framed;
50-
pub use tokio::net::TcpStream;
51-
pub use tokio::reactor::Handle;
49+
pub use tokio_codec::Framed;
50+
pub use tokio_reactor::Handle;
51+
pub use tokio_tcp::TcpStream;
5252

5353
use codec::ws::MessageCodec;
5454
use message::OwnedMessage;

src/client/builder.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@ mod async_imports {
4747
pub use futures::future;
4848
pub use futures::Stream as FutureStream;
4949
pub use futures::{Future, IntoFuture, Sink};
50-
pub use tokio::codec::FramedParts;
51-
pub use tokio::codec::{Decoder, Framed};
52-
pub use tokio::net::TcpStream as TcpStreamNew;
53-
pub use tokio::reactor::Handle;
50+
pub use tokio_codec::FramedParts;
51+
pub use tokio_codec::{Decoder, Framed};
52+
pub use tokio_reactor::Handle;
53+
pub use tokio_tcp::TcpStream as TcpStreamNew;
5454
#[cfg(feature = "async-ssl")]
5555
pub use tokio_tls::TlsConnector as TlsConnectorExt;
5656
pub use ws::util::update_framed_codec;

src/codec/http.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use hyper::uri::RequestUri;
1616
use std::error::Error;
1717
use std::fmt::{self, Display, Formatter};
1818
use std::io::{self, Write};
19-
use tokio::codec::{Decoder, Encoder};
19+
use tokio_codec::{Decoder, Encoder};
2020

2121
#[derive(Copy, Clone, Debug)]
2222
///A codec to be used with `tokio` codecs that can serialize HTTP requests and

src/codec/ws.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,15 @@
77
//! For websocket messages, see the documentation for `MessageCodec`, for
88
//! dataframes see the documentation for `DataFrameCodec`
99
10-
extern crate tokio;
11-
1210
use std::borrow::Borrow;
1311
use std::io::Cursor;
1412
use std::marker::PhantomData;
1513
use std::mem;
1614

1715
use bytes::BufMut;
1816
use bytes::BytesMut;
19-
use tokio::codec::Decoder;
20-
use tokio::codec::Encoder;
17+
use tokio_codec::Decoder;
18+
use tokio_codec::Encoder;
2119

2220
use dataframe::DataFrame;
2321
use message::OwnedMessage;

src/lib.rs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,16 @@ extern crate hyper;
4747
extern crate native_tls;
4848
extern crate rand;
4949
extern crate sha1;
50-
#[cfg(feature = "async")]
50+
#[cfg(test)]
5151
extern crate tokio;
52+
#[cfg(feature = "async")]
53+
extern crate tokio_codec;
54+
#[cfg(feature = "async")]
55+
extern crate tokio_io;
56+
#[cfg(feature = "async")]
57+
extern crate tokio_reactor;
58+
#[cfg(feature = "async")]
59+
extern crate tokio_tcp;
5260
#[cfg(feature = "async-ssl")]
5361
extern crate tokio_tls;
5462
extern crate unicase;
@@ -150,9 +158,9 @@ pub mod async {
150158
pub use result::async::WebSocketFuture;
151159

152160
pub use futures;
153-
pub use tokio::net::TcpListener;
154-
pub use tokio::net::TcpStream;
155-
pub use tokio::reactor::Handle;
161+
pub use tokio_reactor::Handle;
162+
pub use tokio_tcp::TcpListener;
163+
pub use tokio_tcp::TcpStream;
156164
}
157165

158166
pub use self::client::builder::ClientBuilder;

src/server/async.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ use server::{NoTlsAcceptor, WsServer};
77
use std::io;
88
use std::net::SocketAddr;
99
use std::net::ToSocketAddrs;
10-
use tokio::net::{TcpListener, TcpStream};
11-
pub use tokio::reactor::Handle;
10+
pub use tokio_reactor::Handle;
11+
use tokio_tcp::{TcpListener, TcpStream};
1212

1313
#[cfg(any(feature = "async-ssl"))]
1414
use native_tls::TlsAcceptor;

src/server/sync.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ use std::net::{SocketAddr, TcpListener, TcpStream, ToSocketAddrs};
1111
#[cfg(feature = "async")]
1212
use server::async;
1313
#[cfg(feature = "async")]
14-
use tokio::net::TcpListener as AsyncTcpListener;
14+
use tokio_reactor::Handle;
1515
#[cfg(feature = "async")]
16-
use tokio::reactor::Handle;
16+
use tokio_tcp::TcpListener as AsyncTcpListener;
1717

1818
/// Either the stream was established and it sent a websocket handshake
1919
/// which represents the `Ok` variant, or there was an error (this is the

src/server/upgrade/async.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ use hyper::http::h1::Incoming;
1818
use hyper::status::StatusCode;
1919
use std::io::{self, ErrorKind};
2020
use stream::async::Stream;
21-
use tokio::codec::{Decoder, Framed, FramedParts};
21+
use tokio_codec::{Decoder, Framed, FramedParts};
2222
use ws::util::update_framed_codec;
2323

2424
/// An asynchronous websocket upgrade.

src/stream.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,9 @@ pub mod async {
7070
pub use super::ReadWritePair;
7171
use futures::Poll;
7272
use std::io::{self, Read, Write};
73-
pub use tokio::io::{AsyncRead, AsyncWrite};
74-
pub use tokio::io::{ReadHalf, WriteHalf};
75-
pub use tokio::net::TcpStream;
73+
pub use tokio_io::io::{ReadHalf, WriteHalf};
74+
pub use tokio_io::{AsyncRead, AsyncWrite};
75+
pub use tokio_tcp::TcpStream;
7676

7777
/// A stream that can be read from and written to asynchronously.
7878
/// This let's us abstract over many async streams like tcp, ssl,

src/ws/util/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use std::str::from_utf8;
77
use std::str::Utf8Error;
88

99
#[cfg(feature = "async")]
10-
use tokio::codec::{Framed, FramedParts};
10+
use tokio_codec::{Framed, FramedParts};
1111

1212
/// Transforms a u8 slice into an owned String
1313
pub fn bytes_to_string(data: &[u8]) -> Result<String, Utf8Error> {

0 commit comments

Comments
 (0)