Biblioteca C++ header-only para parsing rápido e exato de valores float, double e inteiros a partir de strings, com uma implementação substituta de from_chars.
meta/folly
Biblioteca C++20 open source do Facebook com componentes essenciais que complementam Boost e std e são amplamente usados na Meta.
- Estrelas
- 30,553
- Forks
- 5,879
- Issues abertas
- 487
- Último commit
- ontem
O que é?
Folly (Facebook Open-source Library) é uma coleção de componentes C++20 desenvolvidos para uso prático e eficiência. Ela preenche lacunas quando a biblioteca padrão ou Boost não oferece algo necessário, ou quando essas implementações não atendem aos requisitos de desempenho. Os componentes são relativamente independentes e vão de alguns símbolos a módulos maiores; a biblioteca também costuma ser uma dependência compartilhada de outros projetos C++ open source da Meta.
Folly é compatível com gcc, clang ou MSVC com suporte a C++20. O build com CMake baixa as dependências que não estiverem disponíveis no sistema, e o getdeps.py também pode compilar a biblioteca junto com os projetos relacionados. Ela funciona em Linux (x86-32, x86-64, ARM), iOS, macOS e Windows (x86-64), embora o CMake só seja testado em algumas dessas plataformas. O projeto não garante compatibilidade de ABI entre commits; por isso, recomenda-se compilá-la como biblioteca estática em um prefixo temporário.
Código novo ou instável fica no diretório experimental e não se destina ao uso por clientes. A documentação está na pasta docs, e há testes unitários para cada componente.
Recursos principais
- 01Oferece componentes C++20 para tarefas em que a biblioteca padrão ou Boost não dão conta.
- 02Compila com CMake, que baixa automaticamente as dependências ausentes.
- 03É compatível com gcc, clang e MSVC em Linux, macOS, Windows e iOS.
- 04Inclui o script getdeps.py, que compila Folly junto com os projetos relacionados.
- 05Oferece testes unitários para cada componente e integração opcional com googletest.
Casos de uso
- Adicionar componentes utilitários de alto desempenho a uma base de código C++ de grande porte.
- Compilar projetos C++ que dependem de outras bibliotecas C++ open source da Meta.
- Substituir containers, utilitários de strings ou primitivas de sincronização implementados manualmente por alternativas testadas.
Início rápido
- 1
Clone o repositório
git clone https://github.com/facebook/folly - 2
Acesse o diretório do projeto
cd folly - 3
Configure o build do CMake (busca as dependências ausentes)
cmake -B _build - 4
Compile a biblioteca
cmake --build _build
Antes de usar
- Não há garantia de compatibilidade ABI entre commits; por isso, recomenda-se compilar como biblioteca estática e fixar uma versão.
- O build do CMake só é testado em algumas plataformas, sendo macOS e Linux as plataformas mínimas contempladas.
- Muitos testes são desativados em builds para Windows.
Em coleções
Tópicos
Perguntas frequentes
- O que é folly?
- Biblioteca C++20 open source do Facebook com componentes essenciais que complementam Boost e std e são amplamente usados na Meta. Folly (Facebook Open-source Library) é uma coleção de componentes C++20 desenvolvidos para uso prático e eficiência. Ela preenche lacunas quando a biblioteca padrão ou Boost não oferece algo necessário, ou quando essas implementações não atendem aos requisitos de desempenho. Os componentes são relativamente independentes e vão de alguns símbolos a módulos maiores; a biblioteca também costuma ser uma dependência compartilhada de outros projetos C++ open source da Meta.
- folly é gratuito? Qual é a licença?
- folly é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- folly ainda é mantido?
- Manutenção ativa. O último commit de folly foi em 6 de nov. de 2026.
- Para que posso usar folly?
- Adicionar componentes utilitários de alto desempenho a uma base de código C++ de grande porte. Compilar projetos C++ que dependem de outras bibliotecas C++ open source da Meta. Substituir containers, utilitários de strings ou primitivas de sincronização implementados manualmente por alternativas testadas.
- Como instalar folly?
- Clone o repositório: git clone https://github.com/facebook/folly Acesse o diretório do projeto: cd folly Configure o build do CMake (busca as dependências ausentes): cmake -B _build Compile a biblioteca: cmake --build _build
- Onde consigo folly?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/meta/folly
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Uma biblioteca C++ para criar microbenchmarks que medem o tempo de pequenos trechos de código, com uma estrutura semelhante à de testes unitários.
Cache em memória rápido e concorrente para Go, com remoção de entradas e baixo impacto no GC, mesmo ao armazenar um grande volume de itens no heap.
Uma biblioteca de cache rápida, concorrente e limitada por memória para Go, com remoção baseada em custo e admissão TinyLFU.
Pool de threads Worker para Node.js que executa tarefas intensivas em CPU fora do event loop principal, com filas, cancelamento e estatísticas de execução.
Biblioteca Java de estruturas de dados e utilitários de alto desempenho, como coleções de tipos primitivos, buffers off-heap, filas e rodas de temporizadores.