[Web-SIG] repoze.bfg web framework 1.0 released

Graham Dumpleton graham.dumpleton at gmail.com
Mon Jul 6 05:50:28 CEST 2009


2009/7/6 Randy Syring <randy at rcs-comp.com>:
> Chris,
>
> Sounds interesting.  Question: Does it support some
> kind of module/plugin architecture that will allow me to develop "plug-
> in" functionality across projects?  What would be called in
> Django an "app".

The documentation says:

"""
Like Zope, but unlike Pylons applications or most Django applications,
when you build a repoze.bfg application, if you obey certain
constraints, the application you produce can be reused, modified,
re-integrated, or extended by third-party developers without
modification to the original application itself. See Extending An
Existing repoze.bfg Application for more information about extending
or modifying an existing repoze.bfg application.
"""

http://docs.repoze.org/bfg/current/narr/introduction.html#differences-from-other-frameworks
http://docs.repoze.org/bfg/current/narr/extending.html#extending-chapter

Graham

> For example, I would like to have a "news", "blog", and "calendar"
> module that I can plug into different applications.  The goal is to
> have everything for the module contained in one subdirectory or package
> including
> any configuration, routing, templates, controllers, model, etc.  So,
> something like this:
>
> /modules/news/...
> /modules/calendar/...
> /modules/blog/...
>
> Or:
>
> packages/
>    MyProj
>    NewsComponent
>    CalendarComponent
>    BlogComponent
>
> I ended up writing my own framework because I needed this and didn't want to
> go with Django and Pylons didn't support it:
>
> http://groups.google.com/group/pylons-discuss/browse_thread/thread/14aef22ddb90347f
>
> But would love to be able to use something else that was more of a community
> effort.
>
> Thanks.
> --
> --------------------------------------
> Randy Syring
> RCS Computers & Web Solutions
> 502-644-4776
> http://www.rcs-comp.com
>
> "Whether, then, you eat or drink or whatever you do, do all to the glory of
> God." 1 Cor 10:31
>
>
> On Sun, Jul 5, 2009 at 8:47 PM, Chris McDonough <chrism at plope.com> wrote:
>>
>> Summary
>> -------
>>
>> The first major release of the BFG web framework (aka "repoze.bfg"),
>> version 1.0, is available.  See http://bfg.repoze.org/ for general
>> information about repoze.bfg.
>>
>> Details
>> -------
>>
>> BFG is a Python web framework based on WSGI.  It is inspired by Zope,
>> Pylons, and Django.  It makes use of a number of Zope technologies
>> under the hood.
>>
>> BFG is developed as part of the more general Repoze project
>> (http://repoze.org).  It is released under the BSD-like license
>> available from http://repoze.org/license.html .
>>
>> BFG version 1.0 represents one year of development effort.  The first
>> release of BFG, version 0.1, was made in July of 2008.  Since then,
>> roughly 80 pre-1.0 releases have been made.  None of these pre-1.0
>> releases explicitly promised any backwards compatibility with any
>> earlier release.
>>
>> Version 1.0, however, marks the first point at which the repoze.bfg
>> API has been "frozen".  Future releases in the 1.X line guarantee
>> API-level backward compatibility with 1.0.  A backwards
>> incompatibility with 1.0 at the API level in any future 1.X version
>> will be considered a bug.
>>
>> More Details
>> ------------
>>
>> 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.  The repoze.bfg package contains
>>  11K lines of Python code.  8000 lines of that total line count is
>>  unit test code that tests the remaining 3000 lines.
>>
>> - 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 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.
>>
>> Excruciating Details
>> --------------------
>>
>> Quick installation:
>>
>>  easy_install -i http://dist.repoze.org/bfg/current repoze.bfg
>>
>> General support and information:
>>
>>  http://bfg.repoze.org
>>
>> Tutorials
>>
>>  http://docs.repoze.org/bfg/current/#tutorials
>>
>> Sample Applications
>>
>>  http://docs.repoze.org/bfg/current/#sample-applications
>>
>> Detailed narrative and API documentation:
>>
>>  http://docs.repoze.org/bfg/current
>>
>> Bug tracker:
>>
>>  http://bfg.repoze.org/trac
>>
>> Maillist:
>>
>>  http://lists.repoze.org/listinfo/repoze-dev
>>
>> IRC support:
>>
>>  irc://irc.freenode.net#repoze
>>
>> repoze.bfg is developed primarily by Agendaless Consulting
>> (http://agendaless.com) and a team of contributors.
>>
>> Special thanks to these people, without whom this release would not
>> have been possible:
>>
>> Malthe Borch, Carlos de la Guardia, Chris Rossi, Shane Hathaway, Tom
>> Moroz, Yalan Teng, Jason Lantz, Todd Koym, Jessica Geist, Hanno
>> Schlichting, Reed O'Brien, Sebastien Douche, Ian Bicking, Jim Fulton,
>> Martijn Faassen, Ben Bangert, Fernando Correa Neto, YoungKing, Rob
>> Miller, Wichert Akkermann, David Pratt, Mark Ramm, and Chris Perkins.
>> _______________________________________________
>> Web-SIG mailing list
>> Web-SIG at python.org
>> Web SIG: http://www.python.org/sigs/web-sig
>> Unsubscribe:
>> http://mail.python.org/mailman/options/web-sig/randy%40rcs-comp.com
>
>
> _______________________________________________
> Web-SIG mailing list
> Web-SIG at python.org
> Web SIG: http://www.python.org/sigs/web-sig
> Unsubscribe:
> http://mail.python.org/mailman/options/web-sig/graham.dumpleton%40gmail.com
>
>


More information about the Web-SIG mailing list