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.
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()
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.
It works by using the old META Refresh trick, combined with long-polling. It even works in IE4!
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
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.