Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

simple-dav-client

A minimal, robust command-line client for interacting with a WebDAV server over plain HTTP with no authentication.

Features

  • List (ls): List remote files or directories.
  • Upload (put): Upload local files or directories (recursively) to a remote directory.
  • Download (get): Download remote files or directories (recursively) to a local directory.
  • Create (mkdir): Create directories on the remote server (optionally recursively).
  • Remove (rm): Delete remote files or directories (recursively).

Design

This tool is designed for maximum clarity and correctness:

  • ✅ No Authentication / No HTTPS: This client uses only HTTP (not HTTPS), and does not support authentication, cookies, or custom headers. Simplicity was prioritized for trusted, local/test servers.
  • ✅ Fail Fast & Loudly: If any network, connection, or server error occurs, the tool will abort and display an error message. No retry, fallback, or silent handling is implemented by design.
  • ✅ Path Tokenization: All local and remote paths are tokenized using the fspathverbs library, and all internal APIs use tokenized paths. This ensures reliable, traversal-safe handling and robust operation across platforms and server configurations.
  • ✅ Recursive Operations: Both uploads and downloads automatically recurse into directories, preserving directory hierarchies for both local-to-remote and remote-to-local transmissions.
    • This client uses the classic Command Pattern.
      • All uploads (put) and downloads (get) are performed by first compiling a list of PutAction and GetAction operation objects that describe exactly what needs to be done, then executing in strict order.
      • This allows for clean error reporting, separation of planning and execution, and makes future extensions ( logging, dry runs, previews, etc.) straightforward.
  • ✅ Strong Code Separation: Command-line parsing/dispatch is cleanly separated from the core logic for clarity and maintainability.

Installation

pip install simple-dav-client

After installation, run it as simple_dav_client.

Usage

List a remote file or directory:

simple_dav_client --host localhost --port 8080 ls /remote/file-or-directory

Download a remote file or directory to ./local:

simple_dav_client --host localhost --port 8080 get -O ./local /remote/file-or-directory

Upload a local file or directory to /remote:

simple_dav_client --host localhost --port 8080 put -O /remote ./local/file-or-directory

Create a remote directory (including parent directories):

simple_dav_client --host localhost --port 8080 mkdir -p /remote/child-directory

Remove a remote file or directory:

simple_dav_client --host localhost --port 8080 rm /remote/file-or-directory

Contributing

Contributions are welcome! Please submit pull requests or open issues on the GitHub repository.

License

This project is licensed under the MIT License.

Release files for simple-dav-client 0.1.0a3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for simple-dav-client 0.1.0a3
File Size Uploaded
simple_dav_client-0.1.0a3.tar.gz 9.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for simple-dav-client 0.1.0a3
File Interpreter ABI Platform
simple_dav_client-0.1.0a3-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 18.6 kB

Release files / simple_dav_client-0.1.0a3.tar.gz

Download URL simple_dav_client-0.1.0a3.tar.gz
Size 9.0 kB
Tags Source
SHA-256 checksum
How to use checksums
ad61a35484d77ac48e0ccaa5c48d066e34ded15f8422307c4ca7a3d29205a492
BLAKE2b-256 checksum
How to use checksums
a1cfb4a1618d41b6534c57b5c976c9e0d8fc79963c48378470f086a9de3315e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / simple_dav_client-0.1.0a3-py2.py3-none-any.whl

Download URL simple_dav_client-0.1.0a3-py2.py3-none-any.whl
Size 9.5 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
978d208efa526d7618a839059028505a88b9f68b083c142276de17b7914f295d
BLAKE2b-256 checksum
How to use checksums
43a4f9e8e4992b60dd742bb9d15f343be02c158f724d2e732bed84157736d679
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

0.1.0a3 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page