Skip to content

ejir/webdav_server

Repository files navigation

WebDAV Server / WebDAV 服务器

License Build Status Litmus Tests RFC 4918

English | 中文


🌐 Language Selection / 语言选择

Please choose your preferred language / 请选择您偏好的语言:

🇺🇸 English (README_EN.md)

A lightweight, high-performance WebDAV server implemented in pure C with an embedded UnQLite database. Supports all major WebDAV operations including PROPFIND, PROPPATCH, COPY, MOVE, and locking. Fully compliant with RFC 4918.

Quick Start:

make
./webdav_server -p 8080 --db webdav.db
curl -X MKCOL http://localhost:8080/test

Key Features:

  • ✅ RFC 4918 compliant (100% litmus tests)
  • ✅ Cross-platform (Linux, macOS, Windows)
  • ✅ Unicode/Chinese filename support
  • ✅ Binary file handling (no size limits)
  • ✅ HTTP Basic Authentication

🇨🇳 中文 (README_ZH.md)

一个轻量级、高性能的WebDAV服务器,使用纯C语言实现,内置UnQLite数据库。支持所有主要的WebDAV操作,包括PROPFIND, PROPPATCH, COPY, MOVE和锁定功能。

快速开始:

make
./webdav_server -p 8080 --db webdav.db
curl -X MKCOL http://localhost:8080/test

核心功能:

  • ✅ RFC 4918标准符合 (100% litmus测试)
  • ✅ 跨平台 (Linux, macOS, Windows)
  • ✅ Unicode/中文文件名支持
  • ✅ 二进制文件处理 (无大小限制)
  • ✅ HTTP Basic认证

📚 Documentation / 文档

English Documentation

中文文档


🚀 Quick Commands / 快速命令

Build / 构建

make              # Standard build / 标准构建
make cosmo        # Cross-platform / 跨平台
make debug        # Debug build / 调试构建

Test / 测试

make test         # Built-in tests / 内置测试
make test-all     # Comprehensive / 综合测试
./verify_project.sh  # Verify project / 验证项目

Run / 运行

# Basic / 基本
./webdav_server -p 8080 --db webdav.db

# With auth / 带认证
./webdav_server -p 8080 -u admin -P secret

# Docker / 容器
docker-compose up -d

📊 Project Status / 项目状态

Status: ✅ Production Ready / 生产就绪 Version: 1.0.0 Compliance: RFC 4918 (100%) Platform: Linux, macOS, Windows

Test Results / 测试结果:

  • ✅ Litmus: 66/66 (100%)
  • ✅ Built-in: 5/5 (100%)
  • ✅ Stress: 150+ files
  • ✅ Unicode: Full support

🎯 Quick Start Guide / 快速开始指南

1. Build the Server / 构建服务器

make

2. Start Server / 启动服务器

./webdav_server -p 8080 --db webdav.db

3. Test with curl / 使用curl测试

# Create directory / 创建目录
curl -X MKCOL http://localhost:8080/myfolder

# Upload file / 上传文件
echo "Hello" | curl -X PUT --data-binary @- http://localhost:8080/hello.txt

# List contents / 列出内容
curl -X PROPFIND http://localhost:8080/

# Download / 下载
curl http://localhost:8080/hello.txt

🔗 Important Links / 重要链接

English 中文
Build Instructions 构建说明
API Reference API参考
Testing 测试
Architecture 架构
Contributing 贡献指南

📦 Additional Resources / 额外资源

Configuration Files / 配置文件

  • Makefile - Standard build / 标准构建
  • CMakeLists.txt - Modern build / 现代构建
  • Dockerfile - Container image / 容器镜像
  • docker-compose.yml - Orchestration / 编排配置

Scripts / 脚本

  • tests/run_all_tests.sh - Comprehensive tests / 综合测试
  • scripts/quick_start.sh - Quick start / 快速开始
  • verify_project.sh - Project verification / 项目验证

Documentation / 文档

  • LICENSE - MIT License / MIT许可证
  • CONTRIBUTING.md - Contribution guide / 贡献指南
  • PROJECT_SUMMARY.md - Technical summary / 技术总结
  • PROJECT_STATUS.md - Status report / 状态报告
  • PROJECT_CHECKLIST.txt - Release checklist / 发布清单

💡 Need Help? / 需要帮助?

English

中文


About

a webdav server powered by cosmocc

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages