ircv3-specifications
ircv3-specifications copied to clipboard
Add `migrate` extension
I'm working on an implementation over at https://github.com/aji/charybdis-migrate (No code yet. The code is all on my hard disk and is half-written, but my approach is outlined in the document.)
I think migrate addresses a big gap in the IRC client-server protocol.
migrate is designed to be dead simple for clients to implement, at the expense of more complex server-side implementations, especially for s2s protocols like TS6 that have no central authority to coordinate something like this. The idea is that if it's easy for a client to implement, then more clients will implement it and server authors won't feel like their effort is wasted by implementing it.
I want to hear people's thoughts so I don't waste my own time putting together a proof-of-concept in charybdis-migrate.
This is a great idea and a good draft. As a client author, I really like how easy it will be for us to implement it. Client-initiated is also a nice addition that could be useful in specific contexts.
Huge +1 for this spec - seamlessly being able to push people off a leaf so it can be rebooted is a very cool idea.
That said, I really think this should be changed to leverage resume (#306) instead of having 2 systems that use "resume tokens" (that might mean that the wording for resume needs to change to "servers MUST allow cross-server resumption" - at least when combined with this spec.)
This discussion looks dead for now. What about standarizing JUMPSERVER instead (or additionally)? It uses 010 RPL_REDIR as :irc.some.net 010 nick otherserver.some.net 6697 :Please use this Server/Port instead and looks like some clients and servers already support it. Won't be so seamless but easy on both sides. Only somehow make it aware about different kinds of connections (TLS, websocket etc).