v1.8.8
My sincerest apologies for the 3 year delay. The last few years have been an extraordinarily challenging time for me personally and professionally. I've been experimenting nonstop to better understand what I need from my life and precisely how to attain it.
I moved across Canada from Ontario to British Columbia, taught myself photography, started working a new job at @terrastruct where I designed and wrote https://github.com/terrastruct/d2, taught myself to cook, taught myself to exercise, bought a house on a 20 acre property in the Canadian rockies, became a volunteer firefighter and now I'm working on becoming a paramedic and search and rescue volunteer. My house burnt up in a chimney fire just 1 year after moving in. My vehicle was taken by the fire too...
It's been up and down and round and round these last few years.
Anyway, I am now thankfully working on websocket full time for the foreseeable future. See #402. I'm working on v1.9.0 next. After which I need to finish some inventory work for my house fire insurance claim. Following that I'll be back full time until v2.0.0 is released :)
Thank you to everyone who contributed by reporting issues and opening pull requests.
Special thanks to my sponsors @alixander, @scsmithr, @tailscale and @coder.
note: If anyone is good with amd64 and arm64 assembly please give me a hand with reviewing #326.
I'm trying to confirm that it's correctly implemented in the most efficient way possible and that there is no unnecessary code.
Changelog
This release packs a ton of fixes and improvements. Please upgrade as soon as you can.
Breaking changes are prefixed with BREAKING.
API additions are prefixed with API.
- d7a55cf Ensure no goroutines leak after Close #330
- 25a5ca4 netconn.go: Fix panic on zero or negative deadline durations
- 50952d7 compress.go: Rewrite compression docs
- 5fe95bb write.go: Fix potential writeFrame deadlock #405
- 6cec2ca close.go: Fix mid read close #355
- 28c6709 conn_test: Add TestConcurrentClosePing #298 #394 @univerio @@bhallionOhbibi
- e361137 wsjs: Register OnError #400
- 1a344a4 Reject invalid "Sec-WebSocket-Key" headers from clients #360 @Emyrk
- 20b8838 Run autobahn-testsuite on dev daily
- 818579b Add TestDialViaProxy #395
- e314da6 Redirect wss/ws correctly by modifying the http client #333
- a94999f API Add CloseNow #384
- 1dbc141 Ensure Writer does zero alloc writes #354
- 97d7f90 Make compression negotiation more lenient #258 @abursavich
- 81afa8a Avoid returning 0, nil in NetConn.Read #367
- 4e15d75 Add ci/bench.sh
- a6b9464 Add noCopy to Conn #349
- b4b86b9 dial.go: Use timeout on HTTPClient properly #341
- 2598ea2 Remove all third party dependencies from go.mod and go.sum #297
- fecf26c netconn.go: Return real remote and local address where possible #299 @photostorm
- f7bed7c API Extend DialOptions to allow Host header override #336 @bendiscz
- 3f26c9f wsjson: Write messages in a single frame always #315
- ac38512 BREAKING Remove wspb #311 #297
- See #420 (comment) for a standalone wspb copy.
- e9d0881 Use net.ErrClosed where possible #286 @emersion
- e1e65ad Run AUTOBAHN tests daily
- 2a5a566 Update Go module version to 1.19 #359 @Jacalz
- 118ea68 Add staticcheck and simplify and refactor CI
- b9a4d42 Switch to OpenBSD's license
- 6ead6aa Run the autobahn-testsuite in docker to avoid issues with python2 EOL #334
- e2bb5be Migrate from deprecated io/ioutil #371 @keystroke3
- 7fd6136 Fix dial panic when ctx is nil #365 @guseggert
- 65dfbdd Add wasm dial timeout test
- 29251d0 Improve unauthorized origin error message #247
- 482f584 Cleanup net.Conn context's on close #255
- ea87744 BREAKING Disable read limit on net.Conn #254 #245
- This commit also allows passing -1 to disable the read limit generally. #322
- 085d46c Document context expirations wart #242
- 3b20a49 Document separate idle and read timeout #87
- fdc4079 Clone options correctly #259 @abursavich
- 897a573 Fix deadlock in writeFrame #253 #248
- 493ebbe Prevent net.Conn timer leakage #255 #243
- 0a61ffe Make SetDeadline on NetConn not always close Conn #228 #350
- 1695216 Add ping example #227
- 17cf0fe BREAKING The dependency on klauspost/compress has been removed and compression is disabled by default #220 #230 #218 #315
- More reliable and idiomatic. See updated docs in compress.go
- b453d3e All Wasm code now lives in ws_js.go to avoid polluting the directory tree