Skip to main content

CoolAMQP

A Python client for RabbitMQ

Why CoolAMQP?

  • it supports all types of exchanges
  • it works on Python 2 and on Windows
  • tested against all versions of RabbitMQ 3.x and RabbitMQ 4.0
  • AMQP 0.9.1 client that's native Python
  • heavily optimized for speed
  • geared towards interfacing with RabbitMQ
  • traceable using opentracing
  • high coverage
  • tested in production conditions
  • full support for streams
  • 120 second stress tests are part of each release

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

pip install coolamqp

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.

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.

And because I haven't been paid a penny for this work, I've assumed copyright personally.

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 --build unittest

To launch the stress test suite

docker-compose up stress_tests

Release files for CoolAMQP 2.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for CoolAMQP 2.1.2
File Interpreter ABI Platform
CoolAMQP-2.1.2-py2.py3-none-any.whl Python 3, Python 2 none any Details

Release files / CoolAMQP-2.1.2-py2.py3-none-any.whl

Download URL CoolAMQP-2.1.2-py2.py3-none-any.whl
Size 98.4 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
73ea473e60f45283273ff6a9e52f8082a155e9c806d8a52dfc2ffb995040842c
BLAKE2b-256 checksum
How to use checksums
5ce6641547e7d8e9f3e62fe8c9762eeaea4c6585a482f440c4b39399be81d5ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.9

Release history Release notifications | RSS feed

This release

2.1.2 This release

1 release file

2.1.1

1 release file

2.1.0

1 release file

2.0.0

1 release file

1.5.0

1 release file

1.4.3

1 release file

1.4.2

2 release files

1.3.0

2 release files

1.2.15

3 release files

1.2.13

3 release files

1.2.12

3 release files

1.2.11

3 release files

1.2.10

3 release files

1.2.9

3 release files

1.2.8

2 release files

1.2.7

2 release files

1.2.6

2 release files

1.2.5

2 release files

1.2.4

3 release files

1.2

3 release files

1.1.1

3 release files

1.1

3 release files

1.0.5

3 release files

1.0.4

2 release files

1.0.3

3 release files

1.0.2

3 release files

1.0

2 release files

0.106

2 release files

0.105

2 release files

0.104

2 release files

0.103

2 release files

0.102

2 release files

0.101

2 release files

0.100

2 release files

0.99

2 release files

0.98

2 release files

0.96

2 release files

0.95

2 release files

0.93

2 release files

0.92

2 release files

0.91

1 release file

0.90

1 release file

0.89.1

1 release file

0.89

1 release file

0.88

1 release file

0.87

1 release file

0.86

1 release file

0.85

1 release file

0.84

1 release file

0.83

1 release file

0.82

1 release file

0.81

1 release file

0.80

1 release file

0.11

1 release file

0.10

1 release file

0.9

1 release file

0.8

0.7

1 release file

0.6

1 release file

0.5

1 release file

0.4

1 release file

0.3

1 release file

0.2

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page