Releases: magic-wormhole/magic-wormhole.rs
Releases · magic-wormhole/magic-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
Code
andNameplate
- [lib] Added new checked type for the
Password
section of a wormhole code - [lib] Added new
entropy
feature. When enabled, the entropy of the passed password will be checked on creation. This will change the signature ofMailboxConnection::create_with_password
to require the password to be passed via the newPassword
wrapper type. - [lib][deprecated] Deprecated the
Code
andNameplate
From<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 flagtls
for a statically linked implementation via thering
crate, ornative-tls
for dynamically linking with the system-native TLS implementation. - [all] For experimental (unstable)
transfer-v2
protocol support, enable feature flagexperimental-transfer-v2
. The protocol is not yet finalized. - [all] Added compilation support for WASM targets.
- [lib][breaking] replaced
transit::TransitInfo
with a struct containing the address and aconn_type
field which contains the old enum astransit::ConnectionType
- [lib][breaking] changed the signature of the
transit_handler
function to take just the newly combinedtransit::TransitInfo
- [lib][breaking] changed the signature of the
file_name
argument totransfer::send_*
to takeInto<String>
instead ofInto<PathBuf>
- [lib][breaking] replaced
transfer::AppVersion
with a struct with private fields that implementsstd::default::Default
- [lib][deprecated] split
Wormhole
inMailboxConnection
andWormhole
- [lib][deprecated]
Wormhole::connect_with(out)_code
,WormholeWelcome
, useMailboxConnection::create()
and thenWormhole::connect()
instead - [lib][deprecated]
Wormhole
public struct fields. Use the provided accessor methods instead. - [lib][deprecated]
ReceiveRequest.filename
is deprecated and replaced byReceiveRequest.file_name(..)
- [lib][deprecated]
ReceiveRequest.filesize
is deprecated and replaced byReceiveRequest.file_size(..)
- [lib][deprecated]
GenericKey
, implementKeyPurpose
on a custom struct instead - [lib][deprecated]
rendezvous::RendezvousServer
will be removed in the future with no planned public replacement. - [lib][deprecated]
transfer::PeerMessage
will be removed in the future with no planned public replacement. - [lib][deprecated]
transit::TransitConnector
will be removed in the future with no planned public replacement. - [lib][deprecated]
transit::log_transit_connection
and implementedDisplay
onTransitInfo
instead. - [lib][deprecated]
transit::init()
will be removed in the future with no planned public replacement.
Version 0.6.1
Security
This release handles the following security vulnerabilities:
- RUSTSEC-2023-0065: Update tungstenite
- RUSTSEC-2023-0037: Replace xsalsa20poly1305 with crypto_secretbox
- RUSTSEC-2023-0052: Update webpki
Changes
- Update crate dependencies
Version 0.6.0
Changes
- Add shell completion support for the CLI
- Add support for wormhole URIs
- [cli] The CLI will show a QR code (even if no app can probably read it currently) and a link
- [lib] See
magic_wormhole::uri::WormholeTransferUri
- [lib][breaking] File transfer functions do not take a
url::Url
for the relay server anymore, but aVec<magic_wormhole::transit::RelayHint>
- For migration, look at
magic_wormhole::transit::RelayHint::from_urls
- For migration, look at
- Fix broken port forwarding
- Fix directory transfer
- Smaller bugfixes
Version 0.5.0
Changes
- [lib][breaking] Removed
relay-v2
ability again.- This fixed some relay signalling issues, where no connection could be made with
--force-relay
under some circumstances.
- This fixed some relay signalling issues, where no connection could be made with
- [lib][breaking] Exposed the state of the established transit connection
- The
transit
module now returns whether the established connection is direct or not and the peer/relay's IP address - The
transfer
andforwarding
modules now take atransit_handler
argument. Use&transit::log_transit_connection
as default value
- The
- Various bugfixes
Version 0.4.0
Changes
- When sending, the code will now aumatically be copied into clipboard. So you don't have to select it in the terminal anymore before pasting!
- Added
--force-relay
and--force-direct
CLI flags that control the transit connection- The feature is also exposed in the API
- Updated a lot of dependencies
- Split the project into a workspace and feature gated some higher level protocols. This should now work way better on crates.io (and generally for library usage)
Version 0.3.0
Changes
- Added experimental port forwarding feature
- Improved user experience with better logging and messages
- Improved error and cancellation handling
- Cleaned up CLI args and implemented previous placeholders
- Fixed
send-many
subcommand - Many internal refactorings to accommodate the changes. The public API did not change that much though.
(Note that for technical reasons, the provided binaries in this release are not from the tagged commit, but from 5e89442 instead)