PyCon Pune 2017

A conference on the Python programming language

Ratnadeep Debnath


ircb - A scalable IRC bouncer in Python

Submitted Nov 30, 2016

ircb, is a scalable IRC Bouncer written in Python asyncio. It strives to become an end-to-end IRC bouncer as a service which is easy to setup, maintain, monitor and scale.

Why another bouncer?

There have been a few IRC bouncers out in the world, which have worked pretty well for individuals and groups. But, what if you want to create a hosted IRC bouncer service, accessible to a wider number of users? You will need to scale the service as needed, load balance client traffic, optimize network I/O, monitor, etc. if you want to run ther service with minimal infrastructure cost. ircb addresses this problem space. ircb aims to be super easy for operators to setup, maintain, monitor and scale. ircb empowers developers to build other applications on top of it by connecting to it as an IRC client or by directly listening to it’s websocket server.

What’s for you?

ircb is written in Python 3 asyncio and this talk will be a good feast for asyncio enthusiasts as I walk you through the various components of ircb: live stores, server side flux, bouncer, etc. You will also find it exciting to see how ircb fits into the bigger picture of Waartaa, an Open Source communication and collaboration tool, and Fedora Hubs.


The talk will be organized as:

  • Setting the scene
  • ircb - introduction
  • The big picture: Waartaa, Fedora Hubs
  • IRCB architecture explained
  • Microservices from day 1
  • Server side flux
  • Live stores
  • Realtime publisher API
  • Scheduling IRC bots across nodes
  • Load balancing
  • Demo - concepts in action
  • Future
  • Questions


Knowledge of Python 3, acquaintance with asyncio is preferable

Speaker bio

  • Open Source contributor
  • Python/Django programmer
  • Creator and maintainer of Waartaa
  • Container Engineer at Red Hat
  • Coordinator/mentor at Linux Users Group of Durgapur


{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}

Hosted by

PyCon Pune 2017 more