Links below are for projects I originally authored or contributed to heavily. The order is roughly reverse chronological by activity.
- ZEO byteserver
- A prototype fast implementation of ZEO database server using Rust.
- buildout
- A framework for assembling applications, especially Python applications. This is similar in some ways to Java build tools, except that more emphasis is put on download and assembly than on building.
- ZEO
- A client-server ZODB storage implementation.
- ZODB
- An ACID object-oriented database for Python.
- Newt DB
- A hybrid database providing an object-oriented Python database and a documented-oriented database using PostgreSQL.
- transaction
- Two-phase transaction manager for Python
- BTrees
- A persistent BTree implementation for ZODB.
- Coordinating Independent Monitoring Agent Architecture (CIMAA)
- A simple modular monitoring framework that builds on existing frameworks and services.
- zkdeployment
- A framework for deployment of networks of services to server clusters. Service networks are described by very high-level tree models.
- generationalset
- Sets that provide efficient synchronization between clients and servers, individually and in trees of sets.
- zc.zk
- High-level interface for registering and discovering services with ZooKeeper and for modeling service meta data stored in ZooKeeper nodes.
- TwoTieredKanban
A two-tiered Kanban board that stored data in ZODB. This is an evolution of a two-tiered Kanban that used Asana as a back end.
A two-tiered Kanban board uses nested Kanban boards to model releases/features at a high-level and development at a lower level. It combines some of the best features of Scrum and Kanban.
- zdaemon
- A simple reliable process daemonizer.
- bobo
- A decoupled Web framework that's easy to learn and remember.
- cloudformation
- A small library for defining AWS CloudFormation stacks.
- persona
- In progress: WSGI middleware for authentication using Mozilla Persona
- zc.resumelb
- A decentralized dynamic content-aware load balancer for WSGI applications.
- blobserver
- A Scala caching server for ZODB BLOBs stored in Amazon S3
- zope.security
A Python 4-part security architecture and framework.
The 4 parts of the architecture are authentication, authorization, protection and declaration.
The protection implementation used security proxies to provide highly robust protection that's similar to capability-based schemes.
- zc.zodbwsgi
- WSGI middleware for defining and managing ZODB databases and connections.
- wsgirunner
- A container for WSGI stacks defined using Paste Deployment
- s3blobstorage
- A ZODB storage implementation that gets blobs from the caching blob server rather than from a ZEO storage server.
- zc.zservertracelog
- A mechanism for collecting high-level events about web requests for performance monitoring and analysis. This is similar to but much more minimal that New Relic.
- zc.recipe.deployment
- Buildout plugins for deploying application on Unix-like systems.
- zc.recipe.rhrc
- Buildout plugin for deploying Red-Hat Linux run control scripts.
- AsanaKanban
- A two-tiered Kanban board that uses Asana as a back end.
- zc.customdoctests
- Doctest helpers for supporting non-Python languages like JavaScript and Shell scripts.
- s3staticsync
- A utility for synchronizing a tree of directories with S3. This was designed to be used with FTP servers.
- docker-image-recipe
- A zkdeployment plugin for managing applications deployed as Docker containers.
- awsbillingmomnitor
- A Nagios plugin that monitors AWS spending rates. This was needed because AWS cloudwatch only supports monitoring total expenses.
- zkcron
- A zkdeployment plugin for deploying cron jobs.
- zc.dojo.NativeButton
- A Dojo button widget implementation that foregoes the extra markup typical of Dojo widgets. It also illustrates the use of wsgidriver and htmlchecker for testing.
- wsgidriver
- A test fixture for running WSGI applications on client tests.
- htmlchecker
- A text fixture for comparing expected and actual generated HTML.
- dojoform
- A framework for generating possibly complex Dojo form user interfaces from high-level specifications expressed as JSON.
- zc.zrs
- Storage implementations that provide database replication for ZODB databases.
- botokeyring
- A helper for looking up AWS authentication credentials from a key ring. This was contributed to and is now part of boto.
- syslogngzkdeployment
- A zkdeployment plugin for deploying syslog-ng aggregated log file configurations.
- persistent
- An object persistence base class for ZODB.
- zope.testing
- A collection of test fixtures.
- zope.interface
- An interface implementation for Python, allowing the modeling of behavior independent of implementation.
- zope.event
- A (beautifully simple event bus for Python.
- zc.recipe.filestorage
- Buildout plugin for defining ZODB file storages.
- zc.zodbrecipes
- Buildout plugin for defining ZEO storage servers.
- zc.metarecipe
- Buildout framework for defining meta recipes, which are high-level recipes defined in terms of lower-level recipes.
- zc.beforestorage
- A ZODB storage implementation for providing a view of another storage at a point in time. This is most often used to provide an unchanging view of an otherwise changing storage for use as a demo-storage base.
- zc.zlibstorage
- A ZODB storage implementation that adds data compression.
- zc.lockfile
- A simple fcntl-based locking framework.
- zc.zdaemonrecipe
- A buildout plugin for deploying zdaemon deamonizers.
- zc.ngi
- An asynchronous network programming framework who's primary goal was to make networking applications much easier to test.
- zc.monitor
- A tiny embedded server providing a very simply plugin framework for service monitoring and control.
- Zope 3
- The Zope 3 project generated lots of individual packages, many of which I authored, contributed to, or supervised. I haven't listed all of them. Generally, all packaged in the zope namespave (zope.*) are Zope 3 projects.
- Zope
- A web-development platform/content-management system that utilized the ZODB to provide a rich through-the-web development environment.
- Acquisition
- An implementation of Environmental Acquisition ,which was an inheritance-like mechanism for sharing information in object hierarchies. This was implemented when Python had only reference-counting garbage collection, and so this relied on dynamically created access wrappers.
- ExtensionClass
- A meta-class implementation for Python before Python had user-customizable meta classes.
- DocumentTemplate
- One of the earliest templating languages for Python.