osdir.com


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ANN: libchirp (Message-passing for everyone)


====================
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