Skip to content

Releases: magic-wormhole/magic-wormhole.rs

Version 0.7.5

12 Jan 12:16
0.7.5
Compare
Choose a tag to compare

Fixed

  • cli: Command line arguments completion would generate completions for magic-wormhole-cli, not wormhole-rs

Version 0.7.4

30 Nov 18:57
0.7.4
Compare
Choose a tag to compare

Fixed

  • cli: autocomplete would use the wrong wordlist exactly 100% of the time 🙈
  • cli: Remove unmaintained instant dependency

Version 0.7.3

25 Oct 00:37
0.7.3
390cd42
Compare
Choose a tag to compare

Added

  • cli: Add clipboard auto completion support

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)