Trystero Versions Save

🤝 Build instant multiplayer webapps, no server required — Magic WebRTC matchmaking over BitTorrent, Nostr, MQTT, IPFS, and Firebase

0.18.0

2 months ago

New features

  • 🐦 Nostr strategy - A new connection strategy is now available using Nostr, a decentralized network protocol with many public relays.
  • Unified relay API - The BitTorrent, Nostr, and MQTT strategies now take relayUrls and relayRedundancy options, so there is shared terminology across strategies and a smaller configuration API. These strategies also expose a getRelaySockets() function that returns a map of URLs to WebSockets.
  • Bug fix: Action sender functions can now send empty strings
  • Torrent tracker failures are now logged with their URLs

Breaking changes

  • 🌊 BitTorrent strategy
    • trackerUrls has been renamed relayUrls
    • trackerRedundancy has been renamed relayRedundancy
    • getTrackers() has been renamed getRelaySockets()
  • 📡 MQTT strategy
    • brokerUrls has been renamed relayUrls
    • brokerRedundancy has been renamed relayRedundancy

0.17.0

3 months ago

New features

  • 📡 MQTT strategy - A new connection strategy is now available using MQTT, an open protocol for IoT device communication. Thanks to @freehuntx for suggesting the approach.

0.16.0

5 months ago
  • (🪐 IPFS) swarmAddresses in IPFS config has been replaced by libp2pConfig

0.15.2

5 months ago
  • (🪐 IPFS) Overhauled IPFS strategy
  • (🔥 Firebase) Updated to firebase@^10.6.0

0.15.1

5 months ago
  • (🔥 Firebase only) fixed getOccupants()

0.15.0

5 months ago
  • joinRoom() and makeAction() are now idempotent when called with the same namespaces which allows you to use them as React hooks. See the readme for details. Thanks to @rogersanick for proposing a solution.

0.14.0

6 months ago
  • The Firebase strategy now requires passing the full databaseURL as the appId to joinRoom() (either with or without the https:// prefix), e.g. 'trystero-demo.firebaseio.com, not just 'trystero-demo'. This allows support for other regions which use different url structures. Thanks to @matthewjumpsoffbuildings for diagnosing and proposing a fix.

0.13.0

9 months ago

New features

  • getTrackers() (🌊 BitTorrent only) Returns an object of BitTorrent tracker URL keys mapped to their WebSocket connections. This can be useful for determining the state of the user's connection to the trackers and handling any connection failures. (Thanks to @jeremyckahn for implementing)

0.12.0

1 year ago

Breaking changes

  • getPeers() now returns a map of peer IDs to underlying RTCPeerConnection objects, previously returned an array of IDs (credit to @jeremyckahn for implementing)