Releases
v3.0.0
Compare
Sorry, something went wrong.
No results found
3.0.0 (2026-08-15)
⚠ BREAKING CHANGES
remove producer_count option (#187 )
chunking: chunked messages are not wire-compatible (#177 )
producer: route partition keys with a Pulsar hashing scheme (#176 )
options: downcase enum option atoms (#171 )
make Pulsar.Message independent of batching and chunking (#170 )
consumer: pass the resolved topic and subscription to callback (#169 )
make Client, Consumer, and Producer the public API (#164 )
Features
consumer: add handle_invalid_message/2 (31cfddf )
consumer: pass the resolved topic and subscription to callback (#169 ) (59444de )
producer: async send (#186 ) (81d403d )
producer: key-based batching (#183 ) (d2f44bd )
producer: send timeout and backpressure (#185 ) (6ceefb5 )
Bug Fixes
application: stop dropping unknown client options (e43d308 )
broker: accept general socket option lists (1b60c63 )
broker: broker crashes on unexpected info messages (#161 ) (5989995 )
broker: ignore events from stale sockets (73434b4 )
broker: stale parse buffer desyncs the stream on reconnect (d5552a1 )
chunking: chunked messages are not wire-compatible (#177 ) (83f52eb )
client: accept :infinity as a connection timeout (9e48526 )
consumer: a batch index ack acknowledged the whole batch (#179 ) (39e8b1b )
consumer: deliver unverifiable messages instead of dropping the connection (d4b9229 )
consumer: give invalid messages their payload (99d2284 )
consumer: stop :name naming both the group and the consumers (136ccc4 )
consumer: supervise the dead letter producer under its consumer (#172 ) (7395f53 )
producer: a batch carried no key for Key_Shared to dispatch on (#182 ) (d0fbc0a )
producer: a batching producer dropped delayed delivery (#181 ) (4c9324c )
producer: advertise the full sequence id range of a batch (1c0cabd )
producer: deduplicated sends reported as stored messages (664926d )
producer: route partition keys with a Pulsar hashing scheme (#176 ) (eb3eb13 )
producer: silent data loss after producer restart (a68bb69 )
protocol: accept message frames without a checksum (86f4825 )
protocol: bound the frame size read off the wire (7c7d7fd )
protocol: crash on unsupported inbound command types (6333aba )
protocol: decode/1 raises and kills the connection (e51f49c )
protocol: reject BaseCommands missing their command (ff0c5f9 )
protocol: verify the CRC32C checksum on inbound message frames (c90ce8c )
Performance Improvements
protocol: copy a frame once rather than once per packet (1b484f1 )
Dependencies
bump apachepulsar/pulsar from 4.2.3 to 4.2.4 (#174 ) (b97b864 )
bump jdx/mise-action from 4 to 4.2.3 (#175 ) (bfa974f )
bump jdx/mise-action from 4.2.3 to 4.2.4 (#180 ) (0969a29 )
bump styler from 1.11.0 to 1.12.2 (#167 ) (8357854 )
Documentation
Code Refactoring
client: validate options against a schema (bb4349e )
consumer: validate options against a schema (389fae3 )
make Client, Consumer, and Producer the public API (#164 ) (b353b19 )
make Pulsar.Message independent of batching and chunking (#170 ) (6cdd75a )
options: downcase enum option atoms (#171 ) (0d2f381 )
producer: validate options against a schema (f10d3f3 )
protocol: fold encode_message into encode (f2ba4ff )
reader: validate options against a schema (09e99b4 )
remove producer_count option (#187 ) (2737c2a )
Tests
add connection reset tests (3b848ae )
add unit tests for the binary protocol (c7deb74 )
Miscellaneous Chores
auto-update version on new release (af0e77f )
You can’t perform that action at this time.