0.23.0 #157
dmotz
announced in
Announcements
0.23.0
#157
Replies: 3 comments
-
|
I've just upgraded Chitchatter to use 0.23.0 and it seems to be working well. Thanks for the great work and congrats on the big release @dmotz! |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
Woohoo! SO MANY FEATURES. This is the entire wishlist in one fell swoop. TY @dmotz! |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
With so many under the hood changes, didn't you consider bumping the version to 1.0.0? |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
This version marks Trystero's biggest update since initial release. The internals have been completely rewritten with minimal changes to the public API. You'll find faster, more robust peering thanks to connection sharing and offer recycling behind the scenes. The test suite has been expanded and hardened and now tests server-side use too. Trystero also has a new public face at trystero.dev.
User-facing changes
@trystero-p2p/{nostr,mqtt,torrent,supabase,firebase,ipfs}plus@trystero-p2p/core. The roottrysteropackage still defaults to Nostr.trystero/<strategy>imports are now deprecated compatibility entry points; migrate to@trystero-p2p/<strategy>for non-default strategies.joinRoom(config, roomId, onJoinError)is nowjoinRoom(config, roomId, callbacks).onJoinErrormoved tocallbacks.onJoinError, and Nostr/Torrent’s old relay-reconnection flag moved intoconfig.manualRelayReconnection.joinRoom()gained a new admission-handshake layer viaonPeerHandshake(peerId, send, receive, isInitiator)andhandshakeTimeoutMs, so apps can accept or reject peers before they become visible togetPeers(),onPeerJoin(), actions, or media callbacks. You can use this to implement your own custom identity layer with crypto keys.trickleIceis now a public config option and speeds up initial connections. Most strategies default to trickle ICE, while Torrent and IPFS keep it off unless explicitly enabled.@trystero-p2p/corenow exposescreateStrategyand shared types/utilities, making custom signaling strategies a supported extension point. You can use this to run a signaling relay for Trystero on any software you want. The readme shows a basic example using a simple WebSocket server.replaceTrack()can now send metadata,onPeerJoin()immediately replays already-active peers to late listeners, and the action name limit increased from 12 bytes to 32 bytes.getOccupants()helper was removed. This was only used by a single strategy and removing it helps keep the API surface small. You can still replicate its functionality with the Firebase API directly.rtcPolyfillis documented/tested, and a recommended polyfill library endorsement forwerift.Performance and reliability notes
Offer pooling/reuse was overhauled, especially for tracker-style signaling, so old offers can be reclaimed and recycled instead of constantly allocating fresh peer connections.
Please share feedback, ideas, and of course, what you build with Trystero, via GitHub discussions/issues. Go forth and build a decentralized web. 🤝
This discussion was created from the release 0.23.0.
Beta Was this translation helpful? Give feedback.
All reactions