A Rust web server with a compact config, automatic TLS, and per-request tracing linked to logs, for static sites and reverse proxies.
mar10/wsgidav
A generic, extendable WebDAV server written in Python on top of WSGI, runnable standalone or embedded in other WSGI apps.
- Stars
- 1,247
- Forks
- 178
- Open issues
- 6
- Last commit
- 13 hours ago
What is it?
WsgiDAV is a WebDAV server written in Python and built on the WSGI interface. It can be installed with pip and run from the command line to share a local directory over WebDAV, with SSL support and options for anonymous or authenticated access, including PAM login on Linux and macOS.
Beyond the standalone script, WsgiDAV is a Python library. It is structured as a configurable stack of WSGI middleware, so it can run behind any WSGI-compliant server or be integrated into an existing project. Its providers can expose arbitrary data structures as editable virtual file systems.
WebDAV is a superset of HTTP, so WsgiDAV also works as a general multi-threaded web server. It is commonly used for online editing of Microsoft Office documents over WebDAV.
Key features
- 01Runs as a standalone command-line WebDAV server on Linux, macOS, and Windows.
- 02Supports SSL and anonymous, basic, and PAM login authentication.
- 03Built as a stack of WSGI middleware that can run behind any WSGI server.
- 04Lets developers expose custom data structures as editable virtual file systems.
- 05Available via pip, the Windows MSI installer, winget, and a Docker image.
Use cases
- Sharing a local folder over WebDAV from a laptop or small server.
- Editing Microsoft Office documents online through a WebDAV connection.
- Adding WebDAV access to an existing Python WSGI application.
- Presenting a database or API as a browsable, editable file system.
Quick start
- 1
Install WsgiDAV and cheroot with pip
pip install wsgidav cheroot - 2
Run the standalone server sharing a local folder
wsgidav --host=0.0.0.0 --port=80 --root=/tmp --auth=anonymous
Things to know
- Release 4.0 introduced breaking changes, so check the changelog when upgrading.
- The anonymous example grants write access, and Basic authentication should be used over SSL.
Topics
FAQ
- What is wsgidav?
- A generic, extendable WebDAV server written in Python on top of WSGI, runnable standalone or embedded in other WSGI apps. WsgiDAV is a WebDAV server written in Python and built on the WSGI interface. It can be installed with pip and run from the command line to share a local directory over WebDAV, with SSL support and options for anonymous or authenticated access, including PAM login on Linux and macOS.
- Is wsgidav free to use? What license does it have?
- wsgidav is open source under the MIT license. Check the license terms before using it in commercial products.
- Is wsgidav still maintained?
- Actively maintained. The last commit to wsgidav was on Oct 24, 2026.
- What can I use wsgidav for?
- Sharing a local folder over WebDAV from a laptop or small server. Editing Microsoft Office documents online through a WebDAV connection. Adding WebDAV access to an existing Python WSGI application. Presenting a database or API as a browsable, editable file system.
- How do I install wsgidav?
- Install WsgiDAV and cheroot with pip: pip install wsgidav cheroot Run the standalone server sharing a local folder: wsgidav --host=0.0.0.0 --port=80 --root=/tmp --auth=anonymous
- Where can I get wsgidav?
- The source code and installation instructions are on GitHub: https://github.com/mar10/wsgidav
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A portable Python file server with resumable uploads and downloads, reachable from any web browser and over WebDAV, SFTP, FTP, TFTP and SMB.
A distinctive command-line file server in Rust for static serving, uploads, search, access control and WebDAV.
A single-binary Rust CLI that instantly serves files and directories over HTTP, with optional auth, uploads, and TLS.
Fast, unopinionated, minimalist web framework for Node.js for building web apps and HTTP APIs.
A Node.js framework for building REST APIs, using connect-style middleware to handle requests and responses.