Primeiro lançamento estável da biblioteca GNU libmicrohttpd

O projeto GNU lançou a versão 1.0.0 da biblioteca libmicrohttpd, que é marcada como o primeiro lançamento estável em 16 anos de existência do projeto. A biblioteca é escrita em C e oferece uma API simples para integrar funcionalidades de servidor HTTP em aplicativos. Entre as plataformas suportadas estão: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 e z/OS. O código é distribuído sob a licença LGPL 2.1+. Por padrão, a biblioteca ocupa cerca de 200 KB, enquanto no modo de construção mínima -- 32 KB. Nas dependências, utiliza apenas libc, além de libgnutls em uma construção opcional com suporte a TLS.

A biblioteca suporta o protocolo HTTP 1.1, TLS, processamento incremental de requisições POST, recebimento de conexões em várias portas de rede, autenticação basic e digest, IPv6, SHOUTcast, diversos métodos de multiplexação de conexões (select, poll, epoll) e modelos de multithreading (por exemplo, pode-se usar um pool de threads ou uma thread por conexão). Para reduzir a sobrecarga decorrente da troca de contexto entre o núcleo e o espaço do usuário, o número de chamadas de sistema durante a operação foi minimizado. A segurança da base de código libmicrohttpd foi confirmada por auditorias realizadas pelas empresas Mozilla e Red Hat.

As mudanças mais notáveis em relação à versão anterior são:

  • O código para análise de requisições de clientes foi reescrito e totalmente ajustado às exigências das RFCs 9110 e 9112. Modos de conformidade estrita e flexível foram fornecidos para equilibrar compatibilidade e maior segurança.
  • A implementação da autenticação digest foi reformulada, com um suporte significativamente ampliado para as funcionalidades presentes na RFC 7617. Isso inclui suporte a SHA-512, userhash e username em notação estendida. O suporte ao antigo RFC 2069 e a utilização de hashes MD5 e SHA-256 também foram preservados.
  • Melhorada a operação em ambientes multithread e em modos de polling de sockets.
  • A implementação da autenticação basic foi reformulada, com funções adicionais propostas na ABI.
  • O código para inicialização do GnuTLS foi reescrito. Foi adicionada a capacidade de usar configurações de sistema padrão e específicas do libmicrohttpd para o GnuTLS, além de suporte para sobreposição de configurações individuais da configuração do sistema GnuTLS.

No futuro, está previsto o desenvolvimento da ramificação libmicrohttpd 2, que oferecerá suporte aos protocolos HTTP/2 e HTTP/3, além de simplificar a API e oferecer suporte a diferentes backends para TLS. O início do trabalho na nova ramificação será financiado pelo fundo Sovereign, estabelecido na Alemanha para estimular o desenvolvimento de infraestrutura digital aberta e ecossistemas de código aberto.

Fonte: opennet.ru

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