Repoze Blog

2009-11-15 00:00:00-05:00

repoze.bfg 1.1 released

The second major release of the BFG web framework (aka "repoze.bfg"), version 1.1, is now available.

For a list of changes made since the 1.0 release, see http://docs.repoze.org/bfg/1.1/whatsnew-1.1.html .

See http://bfg.repoze.org/ for other general information about repoze.bfg.

BFG is a Python web framework based on WSGI. It is inspired by Zope, Pylons, and Django.

BFG contains moderate, incremental improvements to patterns found in earlier-generation web frameworks. It tries to make real-world web application development and deployment more fun, more predictable, and more productive. To this end, BFG has the the following features:

  • WSGI-based deployment: PasteDeploy and mod_wsgi compatible.
  • Runs under Python 2.4, 2.5, and 2.6.
  • Runs on UNIX, Windows, and Google App Engine.
  • Full documentation coverage: no feature or API is undocumented.
  • A comprehensive set of unit tests which performs 100% statement coverage of the BFG codebase.
  • Sparse resource utilization: BFG has a small memory footprint and doesn't waste any CPU cycles.
  • Doesn't have an unreasonable set of dependencies: "easy_install"-ing repoze.bfg over broadband takes less than a minute.
  • Quick startup: a typical BFG application starts up in about a second.
  • Offers extremely fast XML/HTML and text templating via Chameleon (http://chameleon.repoze.org/).
  • Persistence-agnostic: use SQLAlchemy, "raw" SQL, ZODB, CouchDB, filesystem files, LDAP, or anything else which suits a particular application's needs.
  • Provides a variety of starter project templates. Each template makes it possible to quickly start developing a BFG application using a particular application stack.
  • Offers URL-to-code mapping like Django or Pylons' URL routing or like Zope's graph traversal, or allows a combination of both routing and traversal. This helps make it feel familiar to both Zope and Pylons developers.
  • Offers debugging modes for common development error conditions (for example, when a view cannot be found, or when authorization is being inappropriately granted or denied).
  • Allows developers to organize their code however they see fit; the framework is not opinionated about code structure.
  • Allows developers to write code that is easily unit-testable. Avoids using extraneous thread local data structures which hamper testability. Provides helper APIs which make it easy to mock framework components such as templates and views.
  • Provides an optional declarative context-sensitive authorization system. This system prevents or allows the execution of code based on a comparison of credentials possessed by the requestor against ACL information stored by a BFG application.
  • Behavior of an an application built using BFG can be extended or overridden arbitrarily by a third-party developer without any modification to the original application's source code. This makes BFG a good choice for building frameworks and other "extensible applications".
  • Zope and Plone developers will be comfortable with the terminology and concepts used by BFG; they are almost all Zope-derived.

posted at: 00:00 | permalink