diff --git a/irc-proto/Cargo.toml b/irc-proto/Cargo.toml index 10b3fb6..09f269d 100644 --- a/irc-proto/Cargo.toml +++ b/irc-proto/Cargo.toml @@ -12,8 +12,12 @@ repository = "https://github.com/aatxe/irc" [badges] travis-ci = { repository = "aatxe/irc" } +[features] +default = ["tokio"] +tokio = ["tokio-io", "bytes"] + [dependencies] -bytes = "0.4" +bytes = { version = "0.4", optional = true } encoding = "0.2" failure = "0.1" -tokio-io = "0.1" +tokio-io = { version = "0.1", optional = true } diff --git a/irc-proto/src/lib.rs b/irc-proto/src/lib.rs index 0de1bc2..a39b13c 100644 --- a/irc-proto/src/lib.rs +++ b/irc-proto/src/lib.rs @@ -2,17 +2,21 @@ #![warn(missing_docs)] +#[cfg(feature = "tokio")] extern crate bytes; extern crate encoding; #[macro_use] extern crate failure; +#[cfg(feature = "tokio")] extern crate tokio_io; pub mod caps; pub mod chan; pub mod command; pub mod error; +#[cfg(feature = "tokio")] pub mod irc; +#[cfg(feature = "tokio")] pub mod line; pub mod message; pub mod mode; @@ -21,6 +25,7 @@ pub mod response; pub use self::caps::{Capability, NegotiationVersion}; pub use self::chan::ChannelExt; pub use self::command::{BatchSubCommand, CapSubCommand, Command}; +#[cfg(feature = "tokio")] pub use self::irc::IrcCodec; pub use self::message::Message; pub use self::mode::{ChannelMode, Mode, UserMode};