Primeira versão estável da biblioteca GNU libmicrohttpd

O Projeto GNU lançou a libmicrohttpd 1.0.0, marcando o primeiro lançamento estável em seus 16 anos de história. A biblioteca é escrita em C e fornece uma API simples para incorporar funcionalidades de servidor HTTP em aplicações. As plataformas suportadas incluem: GNU/LinuxFreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 e z/OS. O código é distribuído sob a licença LGPL 2.1+. A biblioteca tem aproximadamente 200 KB no modo de compilação padrão e 32 KB no modo de compilação mínimo. As dependências incluem apenas a libc, e a libgnutls é compilada opcionalmente com suporte a TLS.

A biblioteca suporta HTTP 1.1, TLS, processamento incremental de requisições POST, aceitação de conexões a partir de múltiplas portas de rede, autenticação básica e digest, IPv6, SHOUTcast, diversos métodos de multiplexação de conexões (select, poll, epoll) e modelos de multithreading (por exemplo, utilizando um pool de threads ou uma thread por conexão). Para reduzir a sobrecarga de trocas de contexto entre o kernel e o espaço do usuário, o número de chamadas de sistema durante a execução é minimizado. A segurança do código-fonte da libmicrohttpd foi confirmada por auditorias conduzidas pela Mozilla e pela Red Hat.

As mudanças mais notáveis ​​em comparação com a versão anterior são:

  • O código de análise de requisições do cliente foi reescrito e está em total conformidade com as RFCs 9110 e 9112. Modos de conformidade estrita e flexível são fornecidos para equilibrar a compatibilidade com o aumento da segurança.
  • A implementação da autenticação digest foi reformulada, expandindo significativamente o suporte para recursos encontrados na RFC 7617. Isso inclui suporte para SHA-512, userhash e nome de usuário em notação estendida. O suporte para o formato de hash RFC 2069 mais antigo e a capacidade de usar hashes MD5 e SHA-256 também foram mantidos.
  • Desempenho aprimorado em ambientes multithread e modos de polling de socket.
  • A implementação da autenticação básica foi reformulada, e funções adicionais são propostas na ABI (Ambiente Binário de Identidade).
  • O código de inicialização do GnuTLS foi reescrito. Isso adiciona a capacidade de usar tanto as configurações de sistema GnuTLS padrão quanto as específicas do libmicrohttpd, além de suporte para sobrescrever configurações individuais do sistema GnuTLS.

O desenvolvimento futuro está planejado para a ramificação libmicrohttpd 2, que fornecerá suporte aos protocolos HTTP/2 e HTTP/3, além de simplificar a API e oferecer suporte a vários backends TLS. O trabalho inicial nesta nova ramificação será financiado pela Fundação Sovereign, estabelecida na Alemanha para fomentar o desenvolvimento de infraestrutura digital aberta e ecossistemas de código aberto.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção DDoS, servidores VPS VDS 🔥 Compre hospedagem de sites confiável com proteção contra DDoS, servidores VPS/VDS | ProHoster