Skip to content

Servidor WebDAV minimalista em C/C++, binário único, cross-compilado com Zig/Cosmocc com interface web embutida.

License

Notifications You must be signed in to change notification settings

ebrato/webdav-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WebDAV Server

Servidor WebDAV em C++ com foco em portabilidade, compilado com Zig Build e Cosmopolitan.

Recursos

  • Servidor HTTP/WebDAV com operações comuns (GET, PUT, DELETE, MKCOL, PROPFIND, MOVE, COPY, LOCK, UNLOCK)
  • Interface de listagem de diretórios no navegador
  • Autenticação Basic opcional
  • Limite de taxa por IP
  • Build nativo e matriz de cross-compilation via build.zig

Requisitos

  • Zig 0.15.2
  • Cosmocc 4.0.2

Download usado neste projeto:

  • https://ziglang.org/download/0.15.2/zig-x86_64-linux-0.15.2.tar.xz
  • https://cosmo.zip/pub/cosmocc/cosmocc-4.0.2.zip

Build

Build nativo:

zig build native -Doptimize=ReleaseFast

Build da matriz completa de targets:

zig build matrix -Doptimize=ReleaseFast

Os binários são gerados em release/bin.

Uso

./release/bin/webdav -r . -p 8080

Opções disponíveis:

  • -r <root> diretório raiz (padrão: .)
  • -p <porta> porta do servidor (padrão: 8080)
  • -u <usuario> usuário para Basic Auth
  • -w <senha> senha para Basic Auth
  • -t <segundos> timeout de conexão (padrão: 30)
  • -m <max_req> máximo de requisições por minuto por IP (padrão: 1000)
  • -v modo verboso
  • -h ajuda

Exemplo com autenticação:

./release/bin/webdav -r /srv/webdav -p 8080 -u admin -w senhaforte -v

GitHub Actions

O workflow em .github/workflows/release.yml:

  • baixa e instala Zig 0.15.2 diretamente da URL oficial
  • baixa e instala cosmocc 4.0.2
  • executa zig build matrix (inclui o build do webdav_x86_64-unknown-cosmo.com via build.zig)
  • compacta cada binário individualmente em .tar.gz com nome por triple/target (ex.: webdav_x86_64-linux-musl.tar.gz)
  • publica todos os .tar.gz no artifact do workflow
  • quando houver evento de release (published), publica todos os .tar.gz como assets da Release

Interface

Interface WebDAV

Autor

Licença

Este projeto está licenciado sob a licença MIT. Você pode usar, modificar e distribuir livremente, desde que mantenha os créditos/autoria no software.

About

Servidor WebDAV minimalista em C/C++, binário único, cross-compilado com Zig/Cosmocc com interface web embutida.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published