NOTE: An updated version of PanDAV is available at SourceForge.net here.
PanDAV is a modular WebDAV server written from scratch in Python 2.4. I made it because I wasn't happy with other available software of this type, and to fit certain special requirements:
- Highly modular and clean design. Nowadays, writing a WebDAV server that serves static filesystem data is both outdated and unnecessary. The main application of WebDAV and similar technologies is accessing dynamic data; in other words, to serve as a translation layer between database and user software. Thus, initial modularity of the software is of great importance. (Though the source publicly available here only does filesystem access, that's only for demonstration purposes).
- Extendability. This actually goes hand-in-hand with previous point, but it deserves a special mention. It's easy to create e.g. custom properties on objects and access them via WebDAV. Each node in the simulated WebDAV "file system" can be of a different type - ordinary file, database object, anything.
- Performance. Performance was another major concern in writing PanDAV. Most of the other Python implementation tend to be simplistic and written with stock components without thought for speed. PanDAV features multi-threaded request handling and custom-made XML parsing. Unfortunately, no real performance measurements exist yet :)
You can get a free version of PanDAV here. It's limited to traversing directories, downloading and uploading files and it's been tested with Microsoft Windows XP Network Places client and DAVExplorer Java client.
This work is licensed under a Creative Commons License.