socketeer 0.5.0

Simplified websocket client based on Tokio-Tungstenite
Documentation
# Changelog

All notable changes to this project will be documented in this file.

## [0.5.0] - 2026-06-30

### Features

- Add Socketeer::split into cloneable Tx and receive Rx halves([dc7f9ff]https://github.com/zheylmun/socketeer/commit/dc7f9ff7a4c5bcca8b2beb7f49fe603bcd9c2801)
- Add fire-and-forget send_unconfirmed to SocketeerTx([35a9b8b]https://github.com/zheylmun/socketeer/commit/35a9b8bddc0a42ade8f1e8cce58bb25092b587e8)
- Implement Stream for SocketeerRx([7a3f80e]https://github.com/zheylmun/socketeer/commit/7a3f80e34e0609a6468d7c598e3a4e642f612294)
- Add SocketeerRx::reunite and ReuniteError([5eb9aa1]https://github.com/zheylmun/socketeer/commit/5eb9aa152014e688def240f425c7fad731cee1f5)
- Implement Stream for Socketeer([27f16d8]https://github.com/zheylmun/socketeer/commit/27f16d81e27a9ce94f07e7e15548fce3a5a609ca)
- Keep protocol alive under receive backpressure([d102d7a]https://github.com/zheylmun/socketeer/commit/d102d7af9492de32a2c7b6285f31ccbaa4bc8433)
- Raise default channel size to 256 and document backpressure([cc74966]https://github.com/zheylmun/socketeer/commit/cc749665456f8a61db318fadbb6dd9dd7bae148d)
- Re-export Message, Bytes, http, tungstenite, and WebSocketStreamType([f4b5453]https://github.com/zheylmun/socketeer/commit/f4b54532e1a7b237d1e576b78dc98718b5bb7369)
- [**breaking**] ConnectOptions builder with private fields, non_exhaustive([978b36a]https://github.com/zheylmun/socketeer/commit/978b36af0cbc041254cda55012f6aceef538cdce)
- [**breaking**] Mark Error #[non_exhaustive][590d98e](https://github.com/zheylmun/socketeer/commit/590d98ea620098d6601962887580e776783b1df5)

### Bug Fixes

- Surface the real disconnect cause to the consumer([3b5c08f]https://github.com/zheylmun/socketeer/commit/3b5c08f0023390ba7009a07a658fca4ba42d288d)
- Align split-half CHANNEL_SIZE defaults to 256 and tighten docs([8caa0aa]https://github.com/zheylmun/socketeer/commit/8caa0aad7cf2fdf523d6061712f6c88108b1e58f)
- Export ConnectOptionsBuilder, correct header() doc, and strengthen test([12c034a]https://github.com/zheylmun/socketeer/commit/12c034a0f4e8e9bfb985ffc316e3d6315b76fbd5)

### Refactor

- Extract socket loop into its own module, move e2e tests to tests/([b7ec286]https://github.com/zheylmun/socketeer/commit/b7ec2861c151257bb6fdfb7d4a6a518e0a178215)
- Make TxChannelPayload response channel optional([7dc850c]https://github.com/zheylmun/socketeer/commit/7dc850c1cd857058219644431c23e527d5bbdf17)
- Share receive path between handle and split halves([4d84f9c]https://github.com/zheylmun/socketeer/commit/4d84f9c65eea9fb8ecb6e74858daf3123c8798eb)
- [**breaking**] Move backpressure_probe_server into the test suite([84b42fa]https://github.com/zheylmun/socketeer/commit/84b42fa15c47c082df3906538a4f33ec6d481a35)

### Documentation

- Design spec for backpressure without protocol starvation (PR 2)([d9c7088]https://github.com/zheylmun/socketeer/commit/d9c708860821e7247bf006ba2082dfb3b065b28c)
- Implementation plan for backpressure resilience (PR 2)([6a5dc4f]https://github.com/zheylmun/socketeer/commit/6a5dc4fbf3af3bb6f2f5825bba5fb90739582085)
- Design for public API cleanup (breaking)([049f0e0]https://github.com/zheylmun/socketeer/commit/049f0e00349f6a003f05c41fa8f19c8aac20f145)
- Implementation plan for public API cleanup([9dc41cb]https://github.com/zheylmun/socketeer/commit/9dc41cbcbadeb0de25a0db649282ba5f365d7419)

### Testing

- Cover concurrent cloned-Tx sends and ReuniteError Display/Error([9f0aaab]https://github.com/zheylmun/socketeer/commit/9f0aaabf0988746b22b3b18eea74e722e902cc8c)
- Add backpressure probe mock server([2420313]https://github.com/zheylmun/socketeer/commit/24203136d04083b69f3c20691d4f9ebae39c0c75)
- Cover backpressure delivery without keepalives([62fa77d]https://github.com/zheylmun/socketeer/commit/62fa77db47b770afdebc44ff25c80f7b0790eb28)
- Cover outgoing sends during backpressure([48d57c9]https://github.com/zheylmun/socketeer/commit/48d57c9f2cdbc3454fa79104c80121743f063907)

## [0.4.0] - 2026-05-08

### Features

- [**breaking**] Add Codec abstraction with JSON, MessagePack, and Raw codecs([efc1d5a]https://github.com/zheylmun/socketeer/commit/efc1d5a22e12a40d2584626f49e42930e9725902)

### Bug Fixes

- Mark Error::Codec inner as #[source][ffdca32](https://github.com/zheylmun/socketeer/commit/ffdca32e38aed73c8b656590264da4337f83d848)
- Surface peer close as WebsocketClosed in HandshakeContext::recv([cd67288]https://github.com/zheylmun/socketeer/commit/cd6728804ae8229a0f7a62172c460022c59acb35)

### Testing

- Add coverage for Codec trait and new HandshakeContext paths([aeb3c89]https://github.com/zheylmun/socketeer/commit/aeb3c8964ae9a8d21fc67a4b31fb4a9700c7c525)
- Push coverage to 98% lines / 96% regions([09d7364]https://github.com/zheylmun/socketeer/commit/09d7364f9e0ee018c5d111335c912544a96eabed)
- Clarify raw-API test names and cover send_raw directly([b10d987]https://github.com/zheylmun/socketeer/commit/b10d98707a3a140daba6dc0fd8d0d41a3cd64ef7)

## [0.3.0] - 2026-04-10

### Features

- Add ConnectOptions, configurable keepalive, and connect_with([5467716]https://github.com/zheylmun/socketeer/commit/546771611b7dd83f8addd17ae1394a562a4c418b)
- Add send_raw and next_raw_message methods([3652f25]https://github.com/zheylmun/socketeer/commit/3652f25056e2aac9505fe767336ab2da080cb452)
- Add ConnectionHandler trait for lifecycle hooks([d3d1048]https://github.com/zheylmun/socketeer/commit/d3d1048f13e785ee9dd7d3acf04faeab73b8cbdb)

### Bug Fixes

- *(ci)* Enable all features for coverage so tests are included([142abe8]https://github.com/zheylmun/socketeer/commit/142abe8d17cf624da5cf29856a1783d6ecdd3b80)

### Testing

- Add auth_echo_server and tests for new features([7f9cbfe]https://github.com/zheylmun/socketeer/commit/7f9cbfea0d35c1059560925e9ac78b97a30da489)

### Miscellaneous Tasks

- Bump version to 0.3.0, update README([4c74ff7]https://github.com/zheylmun/socketeer/commit/4c74ff72cf1f6585883992952bb8b3636c15746a)