[workspace] members = [".", "cli"] default-members = ["cli"] [workspace.package] version = "0.7.3" authors = [ "Fina Wilke ", "piegames ", "Brian Warner ", ] description = "Get things from one computer to another, safely" keywords = ["magic-wormhole", "wormhole", "file-transfer", "transfer"] homepage = "http://magic-wormhole.io/" repository = "https://github.com/magic-wormhole/magic-wormhole.rs/tree/main/cli" license = "EUPL-1.2" rust-version = "1.81" edition = "2021" [workspace.dependencies] arboard = "3.2.0" async-std = "1.12.0" async-trait = "0.1.57" base64 = "0.22.0" bytecodec = "0.4.15" clap = "4" clap_complete = "4" color-eyre = "0.6.0" console = "0.15.0" crypto_secretbox = "0.1.1" ctrlc = "3.2.1" derive_more = { version = "1.0", default-features = false } dialoguer = "0.11" env_logger = "0.11" eyre = "0.6.5" futures = "0.3.12" hex = "0.4.2" hkdf = "0.12.2" indicatif = "0.17.0" noise-protocol = "0.2" noise-rust-crypto = "0.6.0-rc.1" number_prefix = "0.4.0" percent-encoding = "2.1.0" qr2term = "0.3.0" rand = "0.8.3" rmp-serde = "1.0.0" serde = "1.0.120" serde_derive = "1.0.120" serde_json = "1.0.61" sha-1 = "0.10.0" sha2 = "0.10.0" spake2 = "0.4.0" stun_codec = "0.3.0" tar = "0.4.33" thiserror = "1.0.24" time = "0.3.7" trycmd = "0.15" url = "2.2.2" tracing = "0.1" tracing-subscriber = "0.3" test-log = "0.2" zxcvbn = "3.1.0" [package] name = "magic-wormhole" categories = ["network-programming", "asynchronous"] documentation = "https://docs.rs/magic-wormhole/latest/" readme = "README.md" version.workspace = true authors.workspace = true description.workspace = true keywords.workspace = true homepage.workspace = true repository.workspace = true license.workspace = true rust-version.workspace = true edition.workspace = true [package.metadata.docs.rs] features = ["all"] [dependencies] serde = { workspace = true, features = ["rc"] } serde_json = { workspace = true } serde_derive = { workspace = true } crypto_secretbox = { workspace = true } spake2 = { workspace = true } sha-1 = { workspace = true } sha2 = { workspace = true } hkdf = { workspace = true } hex = { workspace = true, features = ["serde"] } rand = { workspace = true } base64 = { workspace = true } time = { workspace = true, features = ["formatting"] } derive_more = { workspace = true, features = ["display", "deref", "from"] } thiserror = { workspace = true } futures = { workspace = true } url = { workspace = true, features = ["serde"] } percent-encoding = { workspace = true } zxcvbn = { workspace = true, optional = true } tracing = { workspace = true, features = ["log", "log-always"] } fuzzt = { version = "0.3.1", optional = true } # Transit dependencies stun_codec = { workspace = true, optional = true } bytecodec = { workspace = true, optional = true } noise-rust-crypto = { workspace = true, optional = true } async-trait = { workspace = true, optional = true } noise-protocol = { workspace = true, optional = true } # Transfer dependencies rmp-serde = { workspace = true, optional = true } tar = { workspace = true, optional = true } # Forwarding dependencies # rmp-serde = … # defined above [target.'cfg(not(target_family = "wasm"))'.dependencies] libc = "0.2.101" async-std = { version = "1.12.0", features = ["attributes", "unstable"] } async-tungstenite = { version = "0.28", features = ["async-std-runtime"] } async-io = "2.2.0" # Transit socket2 = { version = "0.5.0", optional = true, features = ["all"] } if-addrs = { version = "0.13", optional = true } # Transfer [target.'cfg(target_family = "wasm")'.dependencies] wasm-timer = "0.2.5" ws_stream_wasm = "0.7.3" getrandom = { version = "0.2.5", features = ["js"] } # for some tests [dev-dependencies] test-log = { workspace = true } eyre = { workspace = true } [features] # Check the entropy of custom codes. Will fail for any weak passwords. entropy = ["zxcvbn"] transfer = ["transit", "dep:tar", "dep:rmp-serde"] transit = [ "dep:noise-rust-crypto", "dep:noise-protocol", "dep:socket2", "dep:stun_codec", "dep:if-addrs", "dep:bytecodec", "dep:async-trait", ] forwarding = ["transit", "dep:rmp-serde"] default = ["transit", "transfer"] all = ["default", "forwarding", "fuzzy-complete"] # TLS implementations for websocket connections via async-tungstenite # required for optional wss connection to the mailbox server tls = ["async-tungstenite/async-tls"] native-tls = ["async-tungstenite/async-native-tls"] # Enable experimental transfer-v2 support. The protocol is not yet finalized and is subject to change. # By enabling this option you are opting out of semver stability. experimental-transfer-v2 = [] experimental = ["experimental-transfer-v2"] fuzzy-complete = ["fuzzt"] [profile.release] overflow-checks = true strip = "debuginfo" lto = "thin"