🚀 Servidor web multi-threaded em C com cache inteligente e suporte expandido a tipos MIME.
- 🔥 Multi-threading com suporte a conexões simultâneas
- 🧠 Cache inteligente com TTL configurável e thread-safety
- 📁 25+ tipos MIME suportados (imagens, fontes, mídia, documentos)
- ⚙️ Sistema de build moderno com Meson para instalação no sistema
- 🛡️ Segurança com proteção contra path traversal
- 📊 Logging estruturado com cores e rastreamento de cache
- 🔧 Configuração flexível via linha de comando
- 🐧 Daemon mode com gerenciamento PID e serviço systemd
# Instalar dependências (Ubuntu/Debian)
sudo apt install meson ninja-build gcc python3-requests
# Configurar, compilar e instalar
meson setup builddir
meson compile -C builddir
meson test -C builddir
sudo meson install -C builddir
# Executar
salop-server -p 8080make
./bin/server -p 8080Para documentação completa, veja: docs/
- Instalação - Guia completo de instalação
- Configuração - Opções e uso
- Funcionalidades - Recursos detalhados
- Roadmap - Funcionalidades e desenvolvimento
# Servidor básico
salop-server
# Porta e diretório customizados
salop-server -p 8080 -d /var/www/html
# Executar como daemon
salop-server -b -p 80
# Como serviço systemd
sudo systemctl start salop-serverO servidor inclui um sistema de cache inteligente:
- 100 entradas em memória (configurável)
- TTL de 5 minutos (configurável)
- Headers X-Cache para debug (HIT/MISS)
- Thread-safe para alta concorrência
# Teste o cache
curl -I http://localhost:8080/data.json # X-Cache: MISS
curl -I http://localhost:8080/data.json # X-Cache: HIT # Configurar com TLS (experimental)
meson setup builddir -Denable_tls=true
# Executar testes
meson test -C builddir
# Testes individuais
make cache_test utils_test- Web: HTML, CSS, JavaScript, JSON, XML
- Imagens: PNG, JPEG, GIF, ICO, BMP, SVG, WebP
- Fontes: WOFF, WOFF2, TTF, OTF, EOT
- Mídia: MP4, WebM, MP3, WAV, OGG
- Documentos: PDF, TXT, Markdown
- Arquivos: ZIP, GZIP
- Fork o projeto
- Crie uma branch:
git checkout -b feature/amazing-feature - Execute os testes:
meson test -C builddir - Commit:
git commit -m 'Add amazing feature' - Push:
git push origin feature/amazing-feature - Abra um Pull Request
Este projeto está sob a licença MIT. Veja LICENSE para detalhes.
Para mais detalhes, consulte a documentação completa.