Metadata-Version: 2.4
Name: ASGIWebDAV
Version: 2.0.1
Summary: An asynchronous WebDAV server implementation, support multi-provider.
Author: Rex Zhang
Author-email: rex.zhang@gmail.com
Project-URL: homepage, https://github.com/rexzhang/asgi-webdav
Project-URL: documentation, https://rexzhang.github.io/asgi-webdav/
Project-URL: repository, https://github.com/rexzhang/asgi-webdav
Project-URL: changelog, https://github.com/rexzhang/asgi-webdav/blob/main/docs/changelog.en.md
Keywords: webdav,asgi,asyncio
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: asgiref
Requires-Dist: aiofiles>=25.1.0
Requires-Dist: ASGIMiddlewareStaticFile>=0.7.0
Requires-Dist: xmltodict~=1.0.2
Requires-Dist: dataclass-wizard[dotenv]!=0.37.0,<1.0,>=0.36.6
Requires-Dist: tomli; python_version < "3.11"
Requires-Dist: chardet
Requires-Dist: click
Provides-Extra: full
Requires-Dist: uvicorn; extra == "full"
Requires-Dist: uvloop; extra == "full"
Requires-Dist: httptools; extra == "full"
Requires-Dist: backports.zstd; python_version < "3.14" and extra == "full"
Requires-Dist: bonsai~=1.5.0; extra == "full"
Requires-Dist: httpx; extra == "full"
Requires-Dist: httpx-kerberos; extra == "full"
Provides-Extra: standalone
Requires-Dist: uvicorn; extra == "standalone"
Requires-Dist: uvloop; extra == "standalone"
Requires-Dist: httptools; extra == "standalone"
Requires-Dist: backports.zstd; python_version < "3.14" and extra == "standalone"
Provides-Extra: ldap
Requires-Dist: bonsai~=1.5.0; extra == "ldap"
Provides-Extra: webhdfs
Requires-Dist: httpx; extra == "webhdfs"
Requires-Dist: httpx-kerberos; extra == "webhdfs"
Dynamic: license-file

# ASGI WebDAV Server

[![GitHub](https://img.shields.io/github/license/rexzhang/asgi-webdav)](https://github.com/rexzhang/asgi-webdav/blob/main/LICENSE)
[![PyPI](https://img.shields.io/pypi/v/ASGIWebDAV)](https://pypi.org/project/ASGIWebDAV)
[![PyPI - Version](https://img.shields.io/pypi/pyversions/ASGIWebDAV.svg)](https://pypi.org/project/ASGIWebDAV/)
![Pytest Workflow Status](https://github.com/rexzhang/asgi-webdav/actions/workflows/check-pytest.yml/badge.svg)
[![codecov](https://codecov.io/gh/rexzhang/asgi-webdav/branch/main/graph/badge.svg?token=6D961MCCWN)](https://codecov.io/gh/rexzhang/asgi-webdav)
[![Code Style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Type Checked: mypy](https://img.shields.io/badge/type--checked-mypy-blue.svg)](https://github.com/rexzhang/asgi-webdav/actions/workflows/check-mypy.yaml)
[![Docker Pulls](https://img.shields.io/docker/pulls/ray1ex/asgi-webdav)](https://hub.docker.com/r/ray1ex/asgi-webdav)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/ASGIWebDAV)](https://pypi.org/project/ASGIWebDAV)
[![GitHub Downloads](https://img.shields.io/github/downloads/rexzhang/asgi-webdav/total)](https://github.com/rexzhang/asgi-webdav/releases)

An asynchronous WebDAV server implementation, Support multi-provider, multi-account and permission control.

## Features

- [ASGI](https://asgi.readthedocs.io) standard
- WebDAV standard: [RFC4918](https://www.ietf.org/rfc/rfc4918.txt)
- Support multi-provider: FileSystemProvider, MemoryProvider, WebHDFSProvider
- Support multi-account and permission control
- Support optional anonymous user
- Support optional home directory
- Support store password in raw/hashlib/LDAP(experimental) mode
- Full asyncio file IO
- Passed all [litmus(0.13)](http://www.webdav.org/neon/litmus) test, except 1 warning(A security alert that will not be triggered in an ASGI environment.)
- Browse the file directory in the browser
- Support HTTP Basic/Digest authentication
- Support response in Gzip/Zstd
- Compatible with macOS finder and Window10 Explorer

## Quickstart

[中文手册](https://rexzhang.github.io/asgi-webdav/zh/)

```shell
docker pull ray1ex/asgi-webdav
docker run -dit --restart unless-stopped \
  -p 8000:8000 \
  -e UID=1000 -e GID=1000 \
  -v /your/data:/data \
  --name asgi-webdav ray1ex/asgi-webdav
```

## Default Account

|            | value      | description                     |
| ---------- | ---------- | ------------------------------- |
| username   | `username` | -                               |
| password   | `password` | -                               |
| permission | `["+"]`    | Allow access to all directories |

## View in Browser

![View in Browser](docs/web-dir-browser-screenshot.png)

## Documentation

[Documentation at GitHub Page](https://rexzhang.github.io/asgi-webdav/)

## Contributing

Please refer to the [Contributing](docs/contributing.en.md) for more information.

## Acknowledgements

Please refer to the [Acknowledgements](docs/acknowledgements.md) for more information.

## Related Projects

- <https://github.com/bootrino/reactoxide>
