Skip to content

Releases: magic-wormhole/magic-wormhole.rs

Version 0.7.2

11 Oct 16:22
0.7.2
1195b8a
Compare
Choose a tag to compare

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 and Nameplate
  • [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 of MailboxConnection::create_with_password to require the password to be passed via the new Password wrapper type.
  • [lib][deprecated] Deprecated the Code and Nameplate From<impl Into<String>> implementations and new() methods. They are unchecked and will print a warning for now. These will be removed in the next breaking release.

Version 0.7.1

25 Jul 21:18
0.7.1
Compare
Choose a tag to compare

Version 0.7.0

17 Jul 19:47
0.7.0
Compare
Choose a tag to compare
  • [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 flag tls for a statically linked implementation via the ring crate, or native-tls for dynamically linking with the system-native TLS implementation.
  • [all] For experimental (unstable) transfer-v2 protocol support, enable feature flag experimental-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 a conn_type field which contains the old enum as transit::ConnectionType
  • [lib][breaking] changed the signature of the transit_handler function to take just the newly combined transit::TransitInfo
  • [lib][breaking] changed the signature of the file_name argument to transfer::send_* to take Into<String> instead of Into<PathBuf>
  • [lib][breaking] replaced transfer::AppVersion with a struct with private fields that implements std::default::Default
  • [lib][deprecated] split Wormhole in MailboxConnection and Wormhole
  • [lib][deprecated] Wormhole::connect_with(out)_code, WormholeWelcome, use MailboxConnection::create() and then Wormhole::connect() instead
  • [lib][deprecated] Wormhole public struct fields. Use the provided accessor methods instead.
  • [lib][deprecated] ReceiveRequest.filename is deprecated and replaced by ReceiveRequest.file_name(..)
  • [lib][deprecated] ReceiveRequest.filesize is deprecated and replaced by ReceiveRequest.file_size(..)
  • [lib][deprecated] GenericKey, implement KeyPurpose 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 implemented Display on TransitInfo instead.
  • [lib][deprecated] transit::init() will be removed in the future with no planned public replacement.

Version 0.6.1

03 Dec 18:11
0.6.1
Compare
Choose a tag to compare

Security

This release handles the following security vulnerabilities:

Changes

  • Update crate dependencies

Version 0.6.0

21 Dec 22:15
Compare
Choose a tag to compare

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 a Vec<magic_wormhole::transit::RelayHint>
    • For migration, look at magic_wormhole::transit::RelayHint::from_urls
  • Fix broken port forwarding
  • Fix directory transfer
  • Smaller bugfixes

Version 0.5.0

25 May 22:11
Compare
Choose a tag to compare

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.
  • [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 and forwarding modules now take a transit_handler argument. Use &transit::log_transit_connection as default value
  • Various bugfixes

Version 0.4.0

23 Mar 23:15
Compare
Choose a tag to compare

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

16 Mar 19:20
Compare
Choose a tag to compare

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)