Recent Releases of rstream
rstream - 0.31.0
What's Changed
- Remove requests from main depenencies by @mattalexanderhill in https://github.com/rabbitmq-community/rstream/pull/234
- Fix
sasl_configuration_mechanismfor ClientPool. by @dbotwinick in https://github.com/rabbitmq-community/rstream/pull/238 - Fix encoding long values with AMQP 1.0 encoder. by @dbotwinick in https://github.com/rabbitmq-community/rstream/pull/240
New Contributors
- @dbotwinick made their first contribution in https://github.com/rabbitmq-community/rstream/pull/238
Full Changelog: https://github.com/rabbitmq-community/rstream/compare/0.30.0...0.31.0
- Python
Published by Gsantomaggio 6 months ago
rstream - 0.30.0
What's Changed
- Fix for re-applying subscription filter on reconnect by @mattalexanderhill in https://github.com/rabbitmq-community/rstream/pull/229
- Jump to 0.30 to align the tags to the versions by @Gsantomaggio in https://github.com/rabbitmq-community/rstream/pull/231
New Contributors
- @mattalexanderhill made their first contribution in https://github.com/rabbitmq-community/rstream/pull/229
Full Changelog: https://github.com/rabbitmq-community/rstream/compare/0.29.0...0.30.0
- Python
Published by Gsantomaggio 9 months ago
rstream - v0.29.0
What's Changed
- Change type annotation from
listtoSequenceby @nesb1 in https://github.com/rabbitmq-community/rstream/pull/219
Bug Fixes
- Add a random name to the publish reference. by @Gsantomaggio in https://github.com/rabbitmq-community/rstream/pull/222. This avoids some unexpected deduplication cases where multiple producers send messages in the same stream
Full Changelog: https://github.com/rabbitmq-community/rstream/compare/0.28.0...0.29.0
- Python
Published by Gsantomaggio 11 months ago
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 https://github.com/rabbitmq-community/rstream/pull/218
Full Changelog: https://github.com/rabbitmq-community/rstream/compare/0.20.7...0.28.0
- Python
Published by Gsantomaggio about 1 year ago
rstream - v0.20.7
What's Changed
- Fixed bugs of exception logging by @aborigeth in https://github.com/qweeze/rstream/pull/215
New Contributors
- @aborigeth made their first contribution in https://github.com/qweeze/rstream/pull/215
Full Changelog: https://github.com/qweeze/rstream/compare/0.20.6...0.20.7
- Python
Published by DanielePalaia about 1 year ago
rstream - v0.20.6
What's Changed
- Fixed a bug when subscriber frames not clears after unsubscribe by @nesb1 in https://github.com/qweeze/rstream/pull/211
- Fixed a bug when used
consumer_update_listenercallback from another subscription by @nesb1 in https://github.com/qweeze/rstream/pull/210
Full Changelog: https://github.com/qweeze/rstream/compare/0.20.5...0.20.6
- Python
Published by DanielePalaia over 1 year ago
rstream - v0.20.5
What's Changed
- Fixed a bug in the single active consumer scenario: See https://github.com/qweeze/rstream/pull/206 for more information by @nesb1
- Better management of heartbeat scenario: See https://github.com/qweeze/rstream/pull/208 from more information by @DanielePalaia
Full Changelog: https://github.com/qweeze/rstream/compare/0.20.4...0.20.5
- Python
Published by DanielePalaia over 1 year ago
rstream - 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: https://github.com/qweeze/rstream/pull/204 by @nesb1
Full Changelog: https://github.com/qweeze/rstream/compare/0.20.3...0.20.4
- Python
Published by DanielePalaia over 1 year ago
rstream - v0.20.3
What's Changed
- Created py.typed file for PEP-561 compliance by @nesb1 in https://github.com/qweeze/rstream/pull/200
- bump version to 0.20.3 by @Gsantomaggio in https://github.com/qweeze/rstream/pull/202
New Contributors
- @nesb1 made their first contribution in https://github.com/qweeze/rstream/pull/200
Full Changelog: https://github.com/qweeze/rstream/compare/0.20.2...0.20.3
- Python
Published by Gsantomaggio over 1 year ago
rstream - 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 https://github.com/qweeze/rstream/issues/183) Furthermore, it will be supported only til 2025 (https://github.com/Azure/azure-uamqp-python/issues/374)
We put some effort to integrating a new amqp 1.0 codec based on the work done here:
https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/servicebus/azure-servicebus/azure/servicebus/_pyamqp
Which is a pure Python codec.
You can see the integration here:
https://github.com/qweeze/rstream/pull/194
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%
- Python
Published by DanielePalaia over 1 year ago
rstream - v0.19.0
What's Changed
- Adding support for maxPublishersByConnection and maxSubscribersByConnection (before just the default 256 was possible) and some improvements in the SuperStreamConsumer connection management: See https://github.com/qweeze/rstream/issues/182
- Python
Published by DanielePalaia almost 2 years ago
rstream - v0.17.1
What's Changed
- Improved the stability of the client for Consumer/Superstream consumers Metadata Update and cluster node disconnection scenarios: See #181
- Improved examples doc: Created a full example to use the client in a raliable way to manage disconnections and metadata updates: See https://github.com/qweeze/rstream/tree/master/docs/examples/reliable_client
- Python
Published by DanielePalaia almost 2 years ago
rstream - v0.17.0
What's Changed
- Redesign Metadata Update / Disconnection management scenarios for Producers/Superstream-producers: Now in case of a metadata Update or if a disconnection happens the Producers/Superstream producers will try to automatically reconnect without the need to define the onclosehandler callback. See #174
NOTE:
Please be careful this is breaking change. In case your are defining the onclosehandler callback to manage disconnection on Producer side this is not valid anymore.
- Python
Published by DanielePalaia about 2 years ago
rstream - v0.16.0
What's Changed
- First implementation to handle MetaData Update events: See https://github.com/qweeze/rstream/pull/166 and https://github.com/qweeze/rstream/tree/master/docs/examples/metadata_update for further info by @DanielePalaia
- Improvements on how locator connections are handled by @DanielePalaia
- Python
Published by DanielePalaia about 2 years ago
rstream - v0.14.1
What's Changed
- Improving send_batch performance: See #148 for further informations by @DanielePalaia
- Redesign Frame encoding for Publish: See #149 and #133 for further informations by @DanielePalaia
- Implement timeout on sendwait onconfirmation: See #82 for further informations by @DanielePalaia
Overall the improvements in the Frame encoding optimizations and sendbatch improved the performance (comparing to the v0.14.0 version) of around 15/20% on send and sendbatch (Tests done sending 10million of messages)
- Python
Published by DanielePalaia over 2 years ago
rstream - v0.14.0
What's Changed
- Implemented a new method reconnect_stream for (Superstream)Producer/(Superstream)Consumer in order to reconnect to a stream/partition after a disconnection. See #135 #144 and #121 for further details (by @DanielePalaia)
- Closing the locator connections of superstreams when not needed anymore. See #141 and #144 for further details (by @DanielePalaia)
- Add external configurations to SASL connections. See #145 and #139 for further details (by @Gsantomaggio)
- Python
Published by DanielePalaia over 2 years ago
rstream - v0.13.0
What's Changed
- Improving stability, cleanup and logging informations during a non clean disconnection from the server. Adding test coverage. See: #131 #140 #143
- Adding the possibility to set a name to a Producer/Consumer connection: See: #137
- Python
Published by DanielePalaia over 2 years ago
rstream - v0.12.1
What's Changed
- Fixed a memory leak in Client by @qweeze in https://github.com/qweeze/rstream/pull/129 (See https://github.com/qweeze/rstream/issues/125)
- Improving callbacks handlers by @DanielePalaia in https://github.com/qweeze/rstream/pull/134 (See https://github.com/qweeze/rstream/issues/126)
- Python
Published by DanielePalaia over 2 years ago
rstream - v0.12.0
What's Changed
- Treat all handle callbacks as asyncio tasks by @DanielePalaia in https://github.com/qweeze/rstream/pull/112
- Adding ssl/tls example by @DanielePalaia in https://github.com/qweeze/rstream/pull/108
- Updating dependencies to be able to run tests with python11 by @DanielePalaia in https://github.com/qweeze/rstream/pull/110
- Read the offset in the correct way by @Gsantomaggio in https://github.com/qweeze/rstream/pull/118
- Update to 0.12.0 by @Gsantomaggio in https://github.com/qweeze/rstream/pull/120
Full Changelog: https://github.com/qweeze/rstream/compare/0.11.1...0.12.0
- Python
Published by Gsantomaggio over 2 years ago
rstream - v0.10.3
What's Changed
- Handle unexpected TCP disconnection in https://github.com/qweeze/rstream/issues/92 See the documentation
- Python
Published by DanielePalaia over 2 years ago
rstream - v0.10.2
What's Changed
- Performance improvements when producing using
send_sub_entry()(see https://github.com/qweeze/rstream/issues/86) - Added subentrybatchexample: https://github.com/qweeze/rstream/blob/master/docs/examples/subentry_batch/
- Python
Published by DanielePalaia over 2 years ago
rstream - v0.10.0
What's Changed
- Single active consumer implementation https://github.com/qweeze/rstream/pull/79
See the blog post.
You can find an example here - Manual tracking of stream offsets (
store_offsetto store offset to the server andquery_offsetto retrieve the offset from the server ): https://github.com/qweeze/rstream/issues/65 - Removed the work-in-progress label https://github.com/qweeze/rstream/pull/76
- Python
Published by DanielePalaia over 2 years ago
rstream - v0.9.0
What's Changed
- Server side offset manual storing is now supported: See https://github.com/qweeze/rstream/issues/65 and https://github.com/qweeze/rstream/blob/master/docs/examples/manualserveroffset_tracking/consumer.py
- Improve performance for superstream producer using cache for ROUTE and PARTITION commands.
- Python
Published by DanielePalaia over 2 years ago