Skip to main content

Very fast pure-Python AMQP client

Project description

CoolAMQP

A Python client for RabbitMQ

license

Warning!! Since v1.3.1 development has been moved from GitHub to this GitLab. To install CoolAMQP please use

pip install --extra-index-url https://git.dms-serwis.com.pl/api/v4/groups/330/-/packages/pypi/simple coolamqp

Or state it at the beginning of your requirements.txt:

--extra-index-url https://git.dms-serwis.com.pl/api/v4/groups/330/-/packages/pypi/simple
coolamqp

Version 2.0 is in active development

Why CoolAMQP?

It's the best way to talk Python to RabbitMQ with AMQP 0.9.1.

Documentation (WIP) is available at our site.

CoolAMQP uses semantic versioning 2.0.

tl;dr - this is machine-generated compile-time. this generates classes run-time, and there are memoryviews everywhere.

This is borderline absurd.

CoolAMQP is not a direct AMQP client - it also handles reconnections, transactional sending, and so on, mostly via Futures. This means it has a certain opinion on how to handle AMQP, but you can feel the spirit of AMQP underneath. API is stable.

The project is actively maintained and used in a commercial project. Tests can run either on Vagrant (Vagrantfile attached) or Travis CI, and run against RabbitMQ.

CoolAMQP won't touch your messages. It's your bags o'bytes, and your properties.

Enjoy!

Watch out for memoryviews! They're here to stay.

Notes

Assertions are sprinkled throughout the code. You may wish to run with optimizations enabled if you need every CPU cycle you can get.

Note that if you define the environment variable of COOLAMQP_FORCE_SELECT_LISTENER, CoolAMQP will use select-based networking instead of epoll based.

Current limitations

  • channel flow mechanism is not supported (#11)
  • confirm=True is not available if you're not RabbitMQ (#8)

Copyright holder change

Since SMOK sp. z o.o. was incorporated, it inherited all SMOK-related IP of previous operator of the service, DMS Serwis s.c., which continues to operate within it's designated company agreement. From there stems the copyright holder name change.

What is here

coolamqp

The core module

stress_tests

A series of stress tests to catch any race conditions

tests

A series of unit tests that need an AMQP server listening.

compile_definitions

A tool to generate definitions.py from the AMQP specification XML.

In order to compile the definitions:

  • Make sure that you have yapf and requests installed
  • then perform:
python -m compile_definitions

and you're all set. The only files modified is definitions.py.

docs

Sources for the documentation, available here.

Running unit tests

Unit tests are powered by nose. They require an available AMQP broker. If you host the broker other than localhost, set the env AMQP_HOST to correct value. The default username used is guest, and password is guest.

You can also run unit tests from Docker, if you wish so. To launch the unit test suite:

docker-compose up unittest

To launch the stress test suite

docker-compose up stress_tests

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

CoolAMQP-2.0.0-py2.py3-none-any.whl (97.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file CoolAMQP-2.0.0-py2.py3-none-any.whl.

File metadata

  • Download URL: CoolAMQP-2.0.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 97.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for CoolAMQP-2.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 aaebf504bba7f36c49a6f12f4ccb0733cd6e997c0096ab90473b19042baeea8a
MD5 76e729cda0657300227dca99d046dbdc
BLAKE2b-256 615d19208b3c6d1bd8523ebcd68105a2aafe78f22f2a151664b8798ad7d84275

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page