Releases: magic-wormhole/magic-wormhole.rs
Releases · magic-wormhole/magic-wormhole.rs
Version 0.8.1
Security
- Fixed RUSTSEC-2024-0436
- Fixed RUSTSEC-2026-0097
Changed
- dev: Replace the
macro_rules_attributetest helper to remove the unmaintainedpastedependency
Version 0.8.0
Added
- cli: Add colors support
- lib:
transit::TransitRoleenum withFollowerandLeadervariants for use withTransitConnector::connect
Changed
- lib: Switched from async-std to smol/async-io
- lib: Remove explicit entropy feature and make it the default
- lib: Undeprecate direct access to Transit connections and unify the connection functions.
TransitConnector::connectis now the only way to set up the connection, and accepts aTransitRoleenum rather than anis_leaderboolean.leader_connectandfollower_connectare removed from the API. - lib:
transit::init()is now undeprecated. - lib: Renamed
transit::Abilities::ALL_ABILITIEStomagic_wormhole::transit::Abilities::ALL - lib:
Keynow has anas_refimplementation for the innercrypto_secretbox::Keyinstead of a public field - lib:
rendezvous::RendezvousError::IOnow contains a boxed tungstenite error to reduce error enum sizes
Removed
- lib:
Wormhole::connect_with(out)_code,WormholeWelcome, useMailboxConnection::create()and thenWormhole::connect()instead - lib:
Wormholepublic struct fields. Use the provided accessor methods instead. - lib:
GenericKey, implementKeyPurposeon a custom struct instead - lib:
transit:TransitKey,TransitRxKeyandTransitTxKey - lib:
rendezvous::RendezvousServerwith no replacement - lib:
transit::log_transit_connection, use the Display implementation of TransitInfo instead - lib:
AppIDpublic field access: UseAppID::new()andAsRef<str>::as_ref()instead - lib:
MailboxConnection::mailbox(), theMailboxtype was always private and therefore not useful - lib:
transit::RelayHint:can_merge,merge,merge_mut,merge_intowith no replacement - lib:
transit::TransitConnector::can_noise_cryptowith no replacement (noise cryptography is not a stable protocol) - lib:
transfer::PeerMessage, this enum type had lots of fields with private types and was therefore not very useful - lib:
transfer::v1::ReceiveRequest:filenameandfilesizefields: Use the public getter methods - lib:
From<Nameplate>forStringandAsRef<str>forNameplate: Use thestd::fmt::Displayimplementation - lib:
From<Code>forStringandAsRef<str>forCode: Use thestd::fmt::Displayimplementation - lib:
Code::split: UseCode::nameplateandCode::password
Version 0.7.7
Fixed
- Fixes compilation error with cargo doc
Version 0.7.6
Security
- Fixed RUSTSEC-2025-0004
- Fixed RUSTSEC-2025-0009
- Fixed RUSTSEC-2025-0022
Version 0.7.5
Fixed
- cli: Command line arguments completion would generate completions for magic-wormhole-cli, not wormhole-rs
Version 0.7.4
Fixed
- cli: autocomplete would use the wrong wordlist exactly 100% of the time 🙈
- cli: Remove unmaintained instant dependency
Version 0.7.3
Added
- cli: Add clipboard auto completion support
Version 0.7.2
Changed
- [all][\breaking] Code words with a secret password section shorter than 4 bytes are no longer accepted. This only breaks completely invalid uses of the code.
- [all] Code words with a weak password section or a non-integer nameplate will throw an error in the long. This error can be upgraded to a hard error by enabling the "entropy" feature. This feature will become the default in the next major release.
- [lib] Implemented FromStr for
CodeandNameplate - [lib] Added new checked type for the
Passwordsection of a wormhole code - [lib] Added new
entropyfeature. When enabled, the entropy of the passed password will be checked on creation. This will change the signature ofMailboxConnection::create_with_passwordto require the password to be passed via the newPasswordwrapper type. - [lib][deprecated] Deprecated the
CodeandNameplateFrom<impl Into<String>>implementations andnew()methods. They are unchecked and will print a warning for now. These will be removed in the next breaking release.
Version 0.7.1
Version 0.7.0
- [all][breaking] By default websocket TLS support is now disabled in the library crate. TLS is required for secure websocket connections to the mailbox server (
wss://). As the handshake protocol itself is encrypted, this extra layer of encryption is superfluous. Most WASM targets however refuse to connect to non-TLS websockets. For maximum compatibility with all mailbox servers, or for web browser support, select a TLS implementation by specifying the feature flagtlsfor a statically linked implementation via theringcrate, ornative-tlsfor dynamically linking with the system-native TLS implementation. - [all] For experimental (unstable)
transfer-v2protocol support, enable feature flagexperimental-transfer-v2. The protocol is not yet finalized. - [all] Added compilation support for WASM targets.
- [lib][breaking] replaced
transit::TransitInfowith a struct containing the address and aconn_typefield which contains the old enum astransit::ConnectionType - [lib][breaking] changed the signature of the
transit_handlerfunction to take just the newly combinedtransit::TransitInfo - [lib][breaking] changed the signature of the
file_nameargument totransfer::send_*to takeInto<String>instead ofInto<PathBuf> - [lib][breaking] replaced
transfer::AppVersionwith a struct with private fields that implementsstd::default::Default - [lib][deprecated] split
WormholeinMailboxConnectionandWormhole - [lib][deprecated]
Wormhole::connect_with(out)_code,WormholeWelcome, useMailboxConnection::create()and thenWormhole::connect()instead - [lib][deprecated]
Wormholepublic struct fields. Use the provided accessor methods instead. - [lib][deprecated]
ReceiveRequest.filenameis deprecated and replaced byReceiveRequest.file_name(..) - [lib][deprecated]
ReceiveRequest.filesizeis deprecated and replaced byReceiveRequest.file_size(..) - [lib][deprecated]
GenericKey, implementKeyPurposeon a custom struct instead - [lib][deprecated]
rendezvous::RendezvousServerwill be removed in the future with no planned public replacement. - [lib][deprecated]
transfer::PeerMessagewill be removed in the future with no planned public replacement. - [lib][deprecated]
transit::TransitConnectorwill be removed in the future with no planned public replacement. - [lib][deprecated]
transit::log_transit_connectionand implementedDisplayonTransitInfoinstead. - [lib][deprecated]
transit::init()will be removed in the future with no planned public replacement.