aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.toml18
-rw-r--r--src/bin/quassel-client.rs (renamed from src/main.rs)18
-rw-r--r--src/lib.rs15
3 files changed, 31 insertions, 20 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 82d22d4..ca03d3c 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -3,22 +3,28 @@ name = "libquassel"
version = "0.1.0"
authors = ["Max Audron <audron@cocaine.farm>"]
edition = "2018"
+autobins = true
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
log = "0.4"
-bytes = "0.5"
byteorder = "1.3.2"
+failure = "0.1"
+
+bytes = { version = "0.5", optional = true }
flate2 = { version = "1.0", features = ["tokio"], optional = true }
tokio = { version = "0.2", features = ["full"], optional = true }
tokio-util = { version = "0.2", features = ["codec"], optional = true }
-failure = "0.1"
-futures-util = { version = "0.3", features = ["std"] }
-futures = "0.3"
+futures-util = { version = "0.3", features = ["std"], optional = true }
+futures = { version = "0.3", optional = true }
[features]
-framing = ["tokio", "tokio-util", "flate2"]
-client = ["tokio", "tokio-util", "framing", "futures-util"]
+framing = ["tokio", "tokio-util", "flate2", "bytes"]
+client = ["tokio", "tokio-util", "futures", "futures-util", "framing"]
default = []
+
+[[bin]]
+name = "quassel-client"
+required-features = ["client"]
diff --git a/src/main.rs b/src/bin/quassel-client.rs
index 5c34bae..542d265 100644
--- a/src/main.rs
+++ b/src/bin/quassel-client.rs
@@ -1,20 +1,10 @@
-mod consts;
-
-#[cfg(features = "client")]
-mod client;
-
-mod protocol;
+use failure::Error;
-#[macro_use]
-mod util;
+extern crate libquassel;
+use libquassel::client;
#[macro_use]
-extern crate failure;
-
-#[cfg(test)]
-mod tests;
-
-use failure::Error;
+extern crate tokio;
#[tokio::main]
async fn main() -> Result<(), Error> {
diff --git a/src/lib.rs b/src/lib.rs
new file mode 100644
index 0000000..8113481
--- /dev/null
+++ b/src/lib.rs
@@ -0,0 +1,15 @@
+pub mod consts;
+pub mod protocol;
+
+#[macro_use]
+pub mod util;
+
+#[cfg(feature = "client")]
+pub mod client;
+
+#[cfg(test)]
+pub mod tests;
+
+
+#[macro_use]
+extern crate failure;