[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