implement extensions and permessage-deflate#12
Conversation
this makes encoding line up with decoding when it comes to control-flow I think throw/catch is generally discouraged, but it simplifies "pipelining" the encoding/decoding process because we don't need to write any functions that simply carry error tuples to the next function, which in my opinion is even worse readability throw/catch allows us to write our encode/decode functions on the happy path and throw (ha) our hands up in the air when the spec is violated
|
@the-mikedavis wondering if you have a reason for specifically not calling Do you have any authoritative info on this one way or the other? |
|
Yep you're correct: There's a note in the implementation for Gun and Cowboy also do not call |
|
Wonderful. Many thanks! |

closes #1
adds a functional interface for extensions (both meanings of "functional") and implements rfc7692 zip-based compression
it's notable that this makes the test suite take ~30min to run 🤦
one passes a list of extension structs to the
Mint.WebSocket.upgrade/4function in the:extensionsoption, with the syntax sugar of[{extension_module, params}]for short-hand(or the even more syntax sugary
[extension_module])not much documentation because I haven't included the whole documentation suite one needs to actually create the documentation