facebook (Getty Images)
Da Redação
Publicado em 6 de novembro de 2014 às 08h58.
O Facebook liberou, nesta última quarta-feira, o acesso à ferramenta Proxygen, um conjunto de bibliotecas C++ HTTP que inclui até um servidor HTTP usado pela própria empresa. A ideia é fornecer aos desenvolvedores uma solução que facilite a comunicação de apps que precisam entregar serviços pela internet, de acordo com um anúncio assinado pela dupla de engenheiros Daniel Sommermann e Alan Frindell.
A dupla destaca que o Proxygen não substitui outros servidores e proxys HTTP, como o Apache ou nginx, que são mais voltados para a construção de estruturas extremamente flexíveis escritas em C. Mas apesar de oferecerem ótimo desempenho, elas são inferiores à solução do Facebook em termos de possibilidades de configurações, de acordo com o texto.
Nós focamos em criar um framework C++ HTTP de alta performance com alguns poucos padrões, que incluem os códigos de servidor e cliente e que possam ser facilmente integrados a aplicações já existentes, escreveu a dupla. Queremos ajudar mais pessoas a construir e entregar serviços C++ HTTP com ótimo desempenho, e acreditamos que o Proxygen seja uma boa alternativa de framework para fazer isso.
Desenvolvedores devem acabar mais interessados no código da solução mesmo, que acabaria integrado ao de seus projetos para criar e usar um servidor próprio, orientado a eventos na descrição do TechCrunch, em vez de usar um CGI. E segundo o texto do Facebook, o framework incluso no conjunto é capaz de lidar com uma boa quantidade de solicitações HTTP/1.1 e SPDY/3.1 simultâneas 276 mil e 304 mil por minuto, respectivamente, usando um servidor com Xeon E5-2670 de 32 núcleos lógicos, de acordo com testes realizados dentro da empresa.
Sommerman e Frindell contam, no texto, que o Proxygen surgiu dentro da companhia para atender a algumas demandas específicas que surgem com uma rede social. O projeto foi iniciado em 2011 por alguns poucos engenheiros, e hoje ele já suporta o SPDY/3.1 e está próximo de ganhar compatibilidade com HTTP/2. Se tiver interesse, vale conhecer a solução melhor por aqui (o relato está em inglês) e checar o código no GitHub.