Executando verificação de segurança...
10

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

Carregando publicação patrocinada...
1

+3

Sensacional a iniciativa! Sair de 600MB para 20MB não é apenas uma "limpeza", é transformar uma ferramenta pesada em algo viável para pipelines de CI/CD e ambientes de edge onde cada segundo de pull e cada MB de storage contam.

O suporte nativo a HTTP/3 (QUIC) ainda é um gargalo em muitas distros, e ter esse "canivete suíço" pronto para uso e extremamente leve é um valor absurdo para quem trabalha com infra e performance.

Como você claramente valoriza eficiência e ferramentas bem construídas, te convido a conhecer o ecossistema que estou desenvolvendo na crom.run. Lá focamos muito nessa filosofia de ferramentas de alta performance, soberania digital e processamento local (como o CroMedia e o Crompressor). Acho que a pegada do seu projeto ressoa muito com o que estamos construindo por lá. Fica o convite para conhecer.

Parabéns pelo trampo no tiny-curl-http3!

1

Achei ótima a ideia, é um saco para fazer o curl nativo do ubuntu rodar com http3, principalmente por causa das dependências que o ubuntu tem exclusivamente com o OpenSSL.

O uso também é simples, que é um ponto muito positivo. Parabéns!

1
0
1

O Debian +/- em 2024 trocou o OpenSSL pelo GnuTLS no Curl, com isso ele ganhou suporte nativo. O problema é que o ubuntu (e algumas flavors) continuam usando OpenSSL, e para fazer o curl funcionar com http3 nelas é só compilando.

1

Concordo, mas ainda não tenho nenhum servidor que usa debian 13, estou no debian 12, ubuntu 22.04 e ubuntu 24.04 ainda e nenhum deles tem curl e como preciso usar nesses servidores a melhor maneira que encontrei foi essa