Skip to content

A coroutine oriented web framework featuring: Mongrel2, Gevent (or Eventlet), ZeroMQ and DictShield

Notifications You must be signed in to change notification settings

MisterPoppet/brubeck

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What Is Brubeck?

Brubeck is a flexible Python web framework that aims to make the process of building scalable web services easy.

Brubeck's design is discussed in depth in the provided documentation. There, you will find lots of code samples for building request handlers, authentication, rendering templates, managing databases and more.

Goals

  • Be Fast: Brubeck is currently very fast. We intend to keep it that way.

  • Scalable: Massive scaling capabilities should be available out of the box.

  • Friendly: Should be easy for Python hackers of any skill level to use.

  • Pluggable: Brubeck can speak to any language and any database.

Example: Hello World

This is a whole Brubeck application.

class DemoHandler(WebMessageHandler):
    def get(self):
        self.set_body('Hello world')
        return self.render()

urls = [(r'^/', DemoHandler)]
msg_conn = Mongrel2Connection('ipc://127.0.0.1:9999',
                              'ipc://127.0.0.1:9998')

app = Brubeck(msg_conn=msg_conn,
              handler_tuples=urls)
app.run()

Complete Examples

Listsurf is a simple to way to save links. Yeah... another delicious clone!

It serves as a basic demonstration of what a complete site looks like when you build with Brubeck. It has authentication with secure cookies, offers a JSON API, uses Jinja2 for templating and stores data in MongoDB.

Readify is a more elaborate form of Listsurf.

User's have profiles, you can mark things as liked, archived (out of your stream, kept) or you can delete them. The links can also be tagged for easy finding. This project also splits the API out from the Web system into two separate processes, each reading from a single Mongrel2.

You could actually run four Web processes and four API processes as easily as just turning each of them on four times.

This project roughly represents a typical organization of Brubeck's components. Most notably is the separation of handlers, models and queries into isolated python files.

SpotiChat is a chat app for spotify user.

SpotiChat provides chat for users listening to the same song with Spotify. The chat is handled via request handlers that go to sleep until incoming messages need to be distributed to connect clients. The messages are backed by Redis too.

no.js is a javascript-free chat system.

It works by using the old META Refresh trick, combined with long-polling. It even works in IE4!

Contributors

Brubeck wouldn't be what it is without help from:

James Dennis, Andrew Gwozdziewycz, Malcolm Matalka, Dion Paragas, Duane Griffin, Faruk Akgul, Seth Murphy, John Krauss, Ben Beecher, Jordan Orelli, Michael Larsen, Moritz, Dmitrijs Milajevs, Paul Winkler, Chris McCulloh, Nico Mandery, Victor Trac

Contact Us

If you discover bugs or want to suggest features, please use our issue tracker.

Also consider joining our mailing list: brubeck-dev.

You can find some of us in #brubeck on freenode too.

About

A coroutine oriented web framework featuring: Mongrel2, Gevent (or Eventlet), ZeroMQ and DictShield

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%