Pitch: De 600MB para 20MB: Otimizando o cURL com HTTP/3 para containers
Recentemente, precisei usar o cURL para testar HTTP3 no nginx e na minha distro (ubuntu) não existe como instalar (pelo menos não encontrei) o cURL com suporte a HTTP3, ao pesquisar encontrei uma imagem docker que já tem compilado com suporte a HTTP3 e é muito simples de usar:
Requisição HTTP/3 pura
docker run -it --rm overdigo/tiny-curl-http3 curl -IL --http3-only https://blog.cloudflare.com
Mas a imagem que encontrei chegava a pesar mais de 600MB. Para uma ferramenta de linha de comando, isso é um exagero.
Decidi criar o tiny-curl-http3. Utilizando multi-stage builds e focando no essencial, consegui uma imagem final de apenas ~20MB, compatível com AMD64 e ARM64.
Destaques:
Suporte nativo a HTTP/3 (QUIC).
Disponível no Docker Hub para uso imediato.
Código fonte (OSS): https://github.com/overdigo/tiny-curl-http3
Imagem no Docker Hub: https://hub.docker.com/r/overdigo/tiny-curl-http3
Pull da imagem
docker pull overdigo/tiny-curl-http3
Teste rápido de versão
docker run -it --rm overdigo/tiny-curl-http3 curl -V
Requisição HTTP/3 pura
docker run -it --rm overdigo/tiny-curl-http3 curl -IL --http3-only https://blog.cloudflare.com
Com fallback automático (HTTP/3 → HTTP/2 → HTTP/1.1)
docker run -it --rm overdigo/tiny-curl-http3 curl -IL --http3 https://exemplo.com