Message-passing for everyone
Branch: master
Clone or download
ganwell Release 1.2.1b3
* Fix race-condition in _send_cb
Latest commit 4d2ab9a Dec 14, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ci Caplog was fixed long ago: back to latest pytest Dec 4, 2018
doc Fix lists in index.rst Dec 12, 2018
examples Implement request feature Dec 4, 2018
libchirp Release 1.2.1b3 Dec 14, 2018
tests Fix testing with echo_test.exe on windows Dec 12, 2018
.docs-bot.yml Add gitlab-ci/docs-bot Feb 23, 2018
.gitignore Implement sending messages Mar 12, 2018
.gitlab-ci.yml Add gitlab-ci/docs-bot Feb 23, 2018
.travis.yml Add setup.py Jan 27, 2018
LICENSE Add LICENSE Mar 17, 2018
MANIFEST.in
README.rst Release 1.2.1b3 Dec 14, 2018
echo_test.c Update to C libchirp 1.2.0 Dec 4, 2018
libchirp-config.h Cleanup typos Dec 12, 2018
libchirp.c Release 1.2.1b0 Dec 12, 2018
libchirp.h Release 1.2.1b0 Dec 12, 2018
libchirp_cffi.py Implement request feature Dec 4, 2018
requirements.txt Caplog was fixed long ago: back to latest pytest Dec 4, 2018
setup.py

README.rst

python-chirp

Message-passing for everyone

travis rtd mpl works

Read the Docs

chirp

Supported by adsy

On twitter @libchirp

BETA-RELEASE: 1.2.1

Features

  • Fully automatic connection setup
  • TLS support
    • Connections to 127.0.0.1 and ::1 aren't encrypted
  • Easy message routing
  • Robust
    • No message can be lost without an error (in sync mode)
  • Very thin API
  • Minimal code-base, all additional features will be implemented as modules in an upper layer
  • Fast

Install

We only support python 3.5+

Dependencies

Alpine:       apk add python3-dev libffi-dev libressl-dev libuv-dev build-base
Debian-based: apt install python3-dev libffi-dev libssl-dev libuv1-dev build-essential
RPM-based:    yum install python3-devel libffi-devel openssl-devel libuv-devel gcc
Arch:         pacman -S libffi openssl libuv
OSX:          brew install libffi openssl libuv

As long as libchirp is beta we only provide wheels for Windows: building on Windows is very complex.

pip

If we have wheels for your platform, you don't need to install any dependencies.

pip install libchirp

setup.py

pip install cffi
python setup.py install

testing

python libchirp_cffi.py debug
pytest

Changes

2018-12-14 - 1.2.1b3

  • Fix race-condition in _send_cb

2018-12-12 - 1.2.1b2

Read the Docs 1.2.1

  • Update to libchirp.c 1.2.1-beta
  • Implement request API
    • Send a request as message and return the answer to that request

2018-03-21 - 1.1.2b0

  • Update to libchirp.c 1.1.1-beta
    • Fixes deadlock in send
    • Fixes bug when disabling signals
  • Disable signals

2018-03-20 - 1.1.1b0

  • Update to libchirp.c 1.1.0-beta

License

libchirp is subject to the terms of the Mozilla Public License, v. 2.0. Creating a "Larger Work" under the GNU (Lesser) General Public License is explicitly allowed. Contributors to libchirp must agree to the Mozilla Public License, v. 2.0.

Contributing

Please open an issue first. Contributions of missing features are very welcome, but we want to keep to scope of libchirp minimal, so additional features should probably be implemented in an upper layer.

Most valuable contributions:

  • Use it and report issues
  • Fix documentation
  • Promote libchirp
  • Contribute any kind of tests or fuzzing (if possible hypothesis based)
  • Make bindings for your favorite language
  • Make packages for your favorite distribution
  • A uvloop based implementation, see also issue