[Zope-dev] repoze.bfg
Chris McDonough
chrism at plope.com
Wed Jul 16 08:13:51 EDT 2008
I've been working on a new web framework named (provisionally) repoze.bfg.
The relevant README is here: http://svn.repoze.org/repoze.bfg/trunk/README.txt
It is essentially a "Zope lite". It is Zope-ish in that:
- it uses a lot of Zope libraries and concepts (interfaces, some CA constructs,
ZCML)
- it uses graph-traversal-based URL dispatch.
- by default it provides ZPT (actually z3c.pt) templates.
- it provides built-in authorization facilities based on permissions
and users/groups.
It is unlike Zope (variously 2 or 3) inasmuch as:
- It uses a different publisher and authorization model.
- It is heavily dependent on WSGI.
- Its equivalent of the publisher doesn't attempt to traverse into
*code* stored in the object graph. All code is on the filesystem.
The only thing in the object graph is "model" data.
- It doesn't attempt to provide any server functionality. This duty is
left over to WSGI.
- It doesn't provide *authentication* functionality (just authorization
functionality). Authentication is left up to upstream server/middleware
(e.g. repoze.who).
- It's not meant to be "plugged in to". A repoze.bfg application is not
a plugin to repoze.bfg (e.g. it's not a Zope2 Product). Instead, a
repoze.bfg application is just a Python package that happens to use
repoze.bfg facilities.
- The graph root is not effectively assumed to be a ZODB database.
- It provides no built-in through-the-web management interface.
It's unlike Grok inasmuch as:
- It doesn't try to hide ZCML for configuration.
If I were to characterize it succintly and informally, I migh say it's a bit
like Django built around graph traversal dispatch instead of URL-based dispatch.
Speed is a priority. A "hello world" template is currently clocking in at
around 550 req/sec on my MacBook (including security lookups).
It's my intent to continue to develop it, along with a package named
"repoze.lemonade", which will integrate repoze.bfg with ZODB and provide various
persistence-related features (folders, object events, indexing and so forth).
In any case, I thought maybe some folks would be interested in
using/contributing to it. It can be checked out via:
svn co http://svn.repoze.org/repoze.bfg/trunk/
Thanks,
- C
More information about the Zope-Dev
mailing list