All Projects → adamcharnock → Lightbus

adamcharnock / Lightbus

Licence: apache-2.0
RPC & event framework for Python 3

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Lightbus

Foundatio
Pluggable foundation blocks for building distributed apps.
Stars: ✭ 1,365 (+816.11%)
Mutual labels:  redis, messaging, queue
Slimmessagebus
Lightweight message bus interface for .NET (pub/sub and request-response) with transport plugins for popular message brokers.
Stars: ✭ 120 (-19.46%)
Mutual labels:  bus, redis, messaging
Delayer
🌶️ 基于 Redis 的延迟队列中间件,采用 Golang 开发,支持 PHP、Golang 等多种语言客户端
Stars: ✭ 145 (-2.68%)
Mutual labels:  redis, queue
Yii2 Queue
Yii2 Queue Extension. Supports DB, Redis, RabbitMQ, Beanstalk and Gearman
Stars: ✭ 977 (+555.7%)
Mutual labels:  redis, queue
Yii2 Async
Provides translucent api & queues for moving large tasks out of request context with SQL, Redis or AMQP.
Stars: ✭ 64 (-57.05%)
Mutual labels:  redis, queue
Fennel
A task queue library for Python and Redis
Stars: ✭ 24 (-83.89%)
Mutual labels:  redis, queue
Quedis
Quedis - redis queue for bosses
Stars: ✭ 31 (-79.19%)
Mutual labels:  redis, queue
Qutee
PHP Background Jobs (Tasks) Manager
Stars: ✭ 63 (-57.72%)
Mutual labels:  redis, queue
Machinery
Machinery is an asynchronous task queue/job queue based on distributed message passing.
Stars: ✭ 5,821 (+3806.71%)
Mutual labels:  redis, queue
Exq
Job processing library for Elixir - compatible with Resque / Sidekiq
Stars: ✭ 1,218 (+717.45%)
Mutual labels:  redis, queue
Rsmq
Redis Simple Message Queue
Stars: ✭ 1,556 (+944.3%)
Mutual labels:  redis, queue
Bigq
Messaging platform in C# for TCP and Websockets, with or without SSL
Stars: ✭ 18 (-87.92%)
Mutual labels:  messaging, queue
Arq
Fast job queuing and RPC in python with asyncio and redis.
Stars: ✭ 695 (+366.44%)
Mutual labels:  redis, queue
Sidekiq Job Php
Push and schedule jobs to Sidekiq from PHP
Stars: ✭ 34 (-77.18%)
Mutual labels:  redis, queue
Node Celery
Celery client for Node.js
Stars: ✭ 648 (+334.9%)
Mutual labels:  redis, queue
Yii Queue
Queue extension for Yii 3.0
Stars: ✭ 38 (-74.5%)
Mutual labels:  redis, queue
Taskq
Golang asynchronous task/job queue with Redis, SQS, IronMQ, and in-memory backends
Stars: ✭ 555 (+272.48%)
Mutual labels:  redis, queue
Centrifugo
Scalable real-time messaging server in a language-agnostic way. Set up once and forever.
Stars: ✭ 5,649 (+3691.28%)
Mutual labels:  redis, messaging
Queue
A Go queue manager on top of Redis
Stars: ✭ 74 (-50.34%)
Mutual labels:  redis, queue
Simpleue
PHP queue worker and consumer - Ready for AWS SQS, Redis, Beanstalkd and others.
Stars: ✭ 124 (-16.78%)
Mutual labels:  redis, queue

What is Lightbus?

.. image:: https://img.shields.io/circleci/build/github/adamcharnock/lightbus :target: https://circleci.com/gh/adamcharnock/lightbus/tree/master :alt: CircleCI

.. image:: https://api.codacy.com/project/badge/Grade/801d031fd2714b4f9c643182f1fbbd0b :target: https://www.codacy.com/app/adamcharnock/lightbus?utm_source=github.com&utm_medium=referral&utm_content=adamcharnock/lightbus&utm_campaign=Badge_Grade :alt: Codacy Badge

.. image:: https://api.codacy.com/project/badge/Coverage/801d031fd2714b4f9c643182f1fbbd0b :target: https://www.codacy.com/app/adamcharnock/lightbus?utm_source=github.com&utm_medium=referral&utm_content=adamcharnock/lightbus&utm_campaign=Badge_Coverage :alt: Codacy Badge

.. image:: https://img.shields.io/discord/645218336229031946 :target: https://discord.gg/2j594ws :alt: Discord

.. image:: https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg :target: https://lightbus.org/reference/code-of-conduct/ :alt: Contributor Covenant

Lightbus allows your backend processes to communicate, run background tasks, and expose internal APIs.

Lightbus uses Redis as its underlying transport, although support for other platforms may eventually be added.

Lightbus requires Python 3.7 or above.

Full documentation can be found at https://lightbus.org

Designed for ease of use

Lightbus is designed with developers in mind. The syntax aims to be intuitive and familiar, and common problems are caught with clear and helpful error messages.

For example, a naïve authentication API:

.. code-block:: python3

class AuthApi(Api): user_registered = Event(parameters=('username', 'email'))

   class Meta:
       name = 'auth'

   def check_password(self, user, password):
       return (
           user == 'admin'
           and password == 'secret'
       )

This can be called as follows:

.. code-block:: python3

import lightbus

bus = lightbus.create()

bus.auth.check_password( user='admin', password='secret' )

Returns true

You can also listen for events:

.. code-block:: python3

import lightbus

bus = lightbus.create()

def send_signup_email(event_message, username, email): send_mail(email, subject=f'Welcome {username}' )

@bus.client.on_start() def bus_start(): bus.auth.user_registered.listen( send_signup_email )

To get started checkout the documentation at https://lightbus.org.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].