Rstream

Latest version: v0.20.1

Safety actively analyzes 641872 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 5

0.20.1

Adding typing_extensions dependency in tool.poetry.dependencies to avoid importing it

0.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%

0.19.1

What's Changed

* avoiding an asyncio.CancelledError in _publish_buffered_messages during the close() of producers that sometimes was happning. See 190

0.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

0.18.0

What's Changed
* Adding support for CREATE/DELETE api for superstreams: See 186
* Improved management of logs/exceptions: See 185

0.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

Page 1 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.