==================== Announcing libchirp ==================== Message-passing for everyone.
I proudly announce libchirp [0]. I believe queues, message-routers and patterns like pub-sub are the way message-passing should be done. However, I also believe they should be optional and tweak-able. libchirp does only one thing: message-passing with encryption. All other building-blocks should be implemented in upper-layer modules or daemons. libchirp is the basis for modular message-passing and actor-based programming. I want to thank Adfinis-SyGroup [1] who have supported me and allowed me to develop libchirp. [0] https://github.com/concretecloud/python-chirp [1] https://adfinis-sygroup.ch/ Here the mandatory echo-server example: import asyncio from libchirp.asyncio import Chirp, Config, Loop class EchoChirp(Chirp): async def handler(self, msg): await self.send(msg) loop = Loop(); config = Config() config.DISABLE_ENCRYPTION = True # Workers are usually asynchronous config.SYNCHRONOUS = False aio_loop = asyncio.get_event_loop() try: chirp = EchoChirp(loop, config, aio_loop) try: aio_loop.run_forever() finally: chirp.stop() finally: loop.stop() There is also a ThreadPoolExecutor- [2] and a Queue-based [3] interface. By the way libchirp for python are bindings to my C99-implementation [4]. My secondary goal is to build a polyglot message-passing toolkit. Please be welcome to contribute bindings for your favorite language. [2] https://docs.adfinis-sygroup.ch/public/python-chirp/pool.html [3] https://docs.adfinis-sygroup.ch/public/python-chirp/queue.html [4] https://github.com/concretecloud/chirp Project links * python-chirp: https://github.com/concretecloud/python-chirp * C99-chirp: https://github.com/concretecloud/chirp * Other chirp related software: https://github.com/concretecloud Best, Jean-Louis Fuchs -- https://mail.python.org/mailman/listinfo/python-list