Releases: rabbitmq-community/rstream
v0.28.0
Note
This version contains only the configuration for the PIP deployment.
Please refer to https://github.com/rabbitmq-community/rstream/releases/tag/0.20.7 as last version
What's Changed
- update pip release with a token by @Gsantomaggio in #218
Full Changelog: 0.20.7...0.28.0
v0.20.7
What's Changed
- Fixed bugs of exception logging by @aborigeth in #215
New Contributors
- @aborigeth made their first contribution in #215
Full Changelog: 0.20.6...0.20.7
v0.20.6
v0.20.5
What's Changed
- Fixed a bug in the single active consumer scenario: See #206 for more information by @nesb1
- Better management of heartbeat scenario: See #208 from more information by @DanielePalaia
Full Changelog: 0.20.4...0.20.5
v0.20.4
What's Changed
Fixed a bug when, after unsubscribing, the next subscriber with the same subscriber name used a first subscriber callback and ignore second subscriber callback: #204 by @nesb1
Full Changelog: 0.20.3...0.20.4
v0.20.3
What's Changed
- Created py.typed file for PEP-561 compliance by @nesb1 in #200
- bump version to 0.20.3 by @Gsantomaggio in #202
New Contributors
Full Changelog: 0.20.2...0.20.3
v0.20.2
v0.20.1
Adding typing_extensions dependency in tool.poetry.dependencies to avoid importing it
v0.20.0
What's Changed
-
Migrating away from uamqp library: Till now, we were using the uamqp library as amqp 1.0 codec for the streaming protocol:
https://github.com/Azure/azure-uamqp-python.This library (which is partially using cython) is not correctly compiling on ARM architectures (see
#183)
Furthermore, it will be supported only til 2025 (Azure/azure-uamqp-python#374)We put some effort to integrating a new amqp 1.0 codec based on the work done here:
Which is a pure Python codec.
You can see the integration here:
The new codec creates a breaking change: The
body
field in the Producers is just a binary.While before code like this was correct:
amqp_message = AMQPMessage( body="hello: {}".format(i), )
We now need to specify the body as binary (body is now indeed a list of bytes)
amqp_message = AMQPMessage( body=bytes("hello: {}".format(i), "utf-8"), )
Also, some imports may now be different. If you used MessageProperties before, for example:
import uamqp
message_properties = uamqp.message.MessageProperties("MessageId"+str(i), None, bytes("guest",'utf-8'), None, "CorrelationId"+str(i), "text/plain", "utf-8", None, None, None, None, 9999, "MyReplyToGroupId", None)
You now need to use the class exported on rstream like:
from rstream import Properties
message_properties = Properties(message_id="MessageId"+str(i), user_id=None, to=bytes("guest",'utf-8'), subject=None, correlation_id="CorrelationId"+str(i), content_type="text/plain", content_encoding="utf-8", absolute_expiry_time=None, creation_time=None, reply_to_group_id="MyReplyToGroupId")
There are also some benefits to this migration as performance seems overall better at around 10/15%