diff options
author | wrobell <wrobell@riseup.net> | 2025-06-23 12:56:26 +0100 |
---|---|---|
committer | Sharlatan Hellseher <sharlatanus@gmail.com> | 2025-06-26 00:33:08 +0100 |
commit | 13d37cbcb54ec34240615d7d6aeea1a2e4eb0005 (patch) | |
tree | 61ac76be4e9d580b4a8430f86604fd18bdc630dd | |
parent | baeef0ffd11701680a306a5c388843ded7f7a0d2 (diff) |
gnu: Add python-rbfly.
* gnu/packages/python-xyz.scm (python-rbfly): New variable.
Change-Id: Ibc5d61c9d4b8461c4e7976dc3f6cd1bec38dc0b2
Co-authored-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
-rw-r--r-- | gnu/packages/python-xyz.scm | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 5b82b19828..dd6ff9ea82 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -27591,6 +27591,63 @@ in human-readable HTML format.") executed more than a given number of times during a given period.") (license license:asl2.0))) +(define-public python-rbfly + (package + (name "python-rbfly") + (version "0.10.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "rbfly" version)) + (sha256 + (base32 "019fs94qzbxb43vahcm0va53m5d4nxrib5pkl29m4hx9adcccpf6")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags #~(list "--pyargs" "rbfly") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-pytest-config + (lambda _ + ;; Drop test coverage requirements. + (substitute* "pyproject.toml" + ((".*addopts.*") ""))))))) + (native-inputs + (list python-cython-3 + python-pytest + python-pytest-asyncio + python-pytest-timeout + python-setuptools + python-wheel)) + (home-page "https://wrobell.dcmod.org/rbfly/") + (synopsis "Work with RabbitMQ Streams in Python") + (description + "This package implements a functionality to deal with +@url{https://www.rabbitmq.com/streams.html, RabbitMQ Streams} using +@url{https://docs.python.org/3/library/asyncio.html, @code{asyncio}}. + +It is designed and implemented with the following qualities in mind: +@itemize +@item asynchronous Pythonic API with type annotations +@item use of +@url{https://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol, AMQP} +1.0 message format to enable interoperability between RabbitMQ Stream. clients +@item auto reconnection to RabbitMQ broker with lazily created connection +objects +@end itemize + +Support of many RabbitMQ Streams broker features: +@itemize +@item publishing single messages, or in batches, with confirmation +@item subscribing to a stream at a specific point in time, from a specific +offset, or using offset reference +@item stream message filtering +@item writing stream offset reference +@item message deduplication +@item integration with AMQP 1.0 ecosystem at message format level +@end itemize") + (license license:gpl3+))) + (define-public python-jsonrpclib-pelix (package (name "python-jsonrpclib-pelix") |