diff --git a/Cargo.lock b/Cargo.lock index afbdf69053c..361f7d17908 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -112,7 +112,6 @@ dependencies = [ "log", "minspan", "parse_duration", - "rand 0.8.5", "regex", "reqwest", "rmp-serde", @@ -1795,19 +1794,20 @@ dependencies = [ [[package]] name = "rmp" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f55e5fa1446c4d5dd1f5daeed2a4fe193071771a2636274d0d7a3b082aa7ad6" +checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" dependencies = [ "byteorder", "num-traits", + "paste", ] [[package]] name = "rmp-serde" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3eedffbfcc6a428f230c04baf8f59bd73c1781361e4286111fe900849aaddaf" +checksum = "25786b0d276110195fa3d6f3f31299900cf71dfbd6c28450f3f58a0e7f7a347e" dependencies = [ "byteorder", "rmp", diff --git a/Cargo.toml b/Cargo.toml index 88aecea9951..694a432e152 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -30,13 +30,16 @@ atuin = { path = "/usr/bin/atuin" } members = ["./atuin-client", "./atuin-server", "./atuin-common"] [features] +# TODO(conradludgate) +# Currently, this keeps the same default built behaviour for v0.8 +# We should rethink this by the time we hit a new breaking change default = ["sync", "server"] sync = ["atuin-client/sync"] -server = ["atuin-server"] +server = ["atuin-server", "tracing-subscriber"] [dependencies] atuin-server = { path = "atuin-server", version = "0.8.1", optional = true } -atuin-client = { path = "atuin-client", version = "0.8.1" } +atuin-client = { path = "atuin-client", version = "0.8.1", default-features = false } atuin-common = { path = "atuin-common", version = "0.8.1" } log = "0.4" @@ -63,7 +66,6 @@ clap = { version = "3.1.11", features = ["derive"] } clap_complete = "3.1.2" fs-err = "2.7" - [dependencies.tracing-subscriber] version = "0.3" default-features = false @@ -73,8 +75,4 @@ features = [ "registry", "env-filter", ] - -[profile.release] -lto = "fat" -codegen-units = 1 -opt-level = 3 +optional = true diff --git a/atuin-client/Cargo.toml b/atuin-client/Cargo.toml index 1b3187b91a5..c3a567d8db1 100644 --- a/atuin-client/Cargo.toml +++ b/atuin-client/Cargo.toml @@ -12,7 +12,14 @@ repository = "https://github.com/ellie/atuin" [features] default = ["sync"] -sync = ["urlencoding", "sodiumoxide", "reqwest"] +sync = [ + "urlencoding", + "sodiumoxide", + "reqwest", + "rust-crypto", + "rmp-serde", + "base64", +] [dependencies] atuin-common = { path = "../atuin-common", version = "0.8.1" } @@ -27,16 +34,12 @@ chrono-english = "0.1.4" config = "0.13" serde = { version = "1.0.126", features = ["derive"] } serde_json = "1.0.75" -rmp-serde = "1.0.0" -base64 = "0.13.0" parse_duration = "2.1.1" -rand = "0.8.4" -rust-crypto = "^0.2" -tokio = { version = "1", features = ["full"] } async-trait = "0.1.49" itertools = "0.10.3" shellexpand = "2" sqlx = { version = "0.5", features = [ + "runtime-tokio-rustls", "uuid", "chrono", "sqlite", @@ -45,9 +48,16 @@ minspan = "0.1.1" regex = "1.5.4" fs-err = "2.7" +# sync urlencoding = { version = "2.1.0", optional = true } sodiumoxide = { version = "0.2.6", optional = true } reqwest = { version = "0.11", features = [ "json", "rustls-tls", ], default-features = false, optional = true } +rust-crypto = { version = "^0.2", optional = true } +rmp-serde = { version = "1.0.0", optional = true } +base64 = { version = "0.13.0", optional = true } + +[dev-dependencies] +tokio = { version = "1", features = ["full"] } diff --git a/atuin-client/src/encryption.rs b/atuin-client/src/encryption.rs index 4746c23ed13..87f45fec847 100644 --- a/atuin-client/src/encryption.rs +++ b/atuin-client/src/encryption.rs @@ -9,7 +9,7 @@ // to decrypt use fs_err as fs; -use serde::{Deserialize, Serialize}; +use serde::{Serialize, Deserialize}; use std::io::prelude::*; use std::path::PathBuf; @@ -77,7 +77,7 @@ pub fn encode_key(key: secretbox::Key) -> Result { pub fn decode_key(key: String) -> Result { let buf = base64::decode(key).wrap_err("encryption key is not a valid base64 encoding")?; - let buf: secretbox::Key = rmp_serde::from_read_ref(&buf) + let buf: secretbox::Key = rmp_serde::from_slice(&buf) .wrap_err("encryption key is not a valid message pack encoding")?; Ok(buf) @@ -98,7 +98,7 @@ pub fn decrypt(encrypted_history: &EncryptedHistory, key: &secretbox::Key) -> Re let plaintext = secretbox::open(&encrypted_history.ciphertext, &encrypted_history.nonce, key) .map_err(|_| eyre!("failed to open secretbox - invalid key?"))?; - let history = rmp_serde::from_read_ref(&plaintext)?; + let history = rmp_serde::from_slice(&plaintext)?; Ok(history) }