Biblioteca C++ header-only de mapas hash, conjuntos e contêineres B-tree rápidos e econômicos em memória, que substituem os contêineres padrão da STL.
Cyan4973/xxHash
Biblioteca C para hashing não criptográfico extremamente rápido, com hashes de 32, 64 e 128 bits idênticos em diferentes plataformas.
- Estrelas
- 11,410
- Forks
- 946
- Issues abertas
- 25
- Último commit
- há 9 dias
O que é?
xxHash é um algoritmo de hash não criptográfico escrito em C, voltado a cargas de trabalho em que a velocidade do hashing é importante, como tabelas hash, filtros Bloom, checksums e deduplicação de dados. É portável e produz resultados idênticos em sistemas little-endian e big-endian; além disso, suas saídas permanecem estáveis entre versões depois de finalizadas.
A biblioteca oferece XXH32, XXH64 e XXH3. O XXH3 inclui variantes de 64 bits e 128 bits (XXH128) que usam operações vetorizadas. XXH3_64bits() é a opção padrão recomendada para novas aplicações. O projeto também inclui a ferramenta de linha de comando xxhsum para gerar e verificar checksums e um modo header-only por meio de XXH_INLINE_ALL.
O xxHash não é adequado para assinaturas, armazenamento de senhas ou qualquer finalidade sensível à segurança. Suas opções de build abrangem inlining, endianness, métodos de acesso à memória e redução do tamanho do binário para sistemas embarcados ou com recursos limitados.
Recursos principais
- 01Hashes não criptográficos de 32, 64 e 128 bits.
- 02Saída idêntica em plataformas little-endian e big-endian.
- 03Implementações vetorizadas de XXH3 e XXH128 com caminhos para AVX2 e SSE2.
- 04API de streaming para fazer hashing de entradas cujo tamanho é desconhecido.
- 05Integração header-only por meio de XXH_INLINE_ALL.
- 06Macros de build para reduzir o tamanho do binário ou desativar recursos em sistemas embarcados.
Casos de uso
- Definir chaves para entradas em tabelas hash ou filtros Bloom quando a velocidade em entradas pequenas é importante.
- Calcular checksums rápidos de arquivos com a ferramenta de linha de comando xxhsum.
- Detectar blocos de dados duplicados em armazenamento ou pipelines de deduplicação.
- Incorporar um hash rápido em aplicações C ou C++ sensíveis ao desempenho.
Início rápido
- 1
Compile a biblioteca e a CLI xxhsum com make
make - 2
Calcule o hash deste arquivo README com XXH3 usando xxhsum
./xxhsum -H3 README.md
Antes de usar
- xxHash não é uma função hash criptográfica e não deve ser usado para assinaturas nem para armazenar senhas.
- Os metadados indicam NOASSERTION como licença; por isso, verifique o arquivo de licença do repositório antes de usar.
Tópicos
Perguntas frequentes
- O que é xxHash?
- Biblioteca C para hashing não criptográfico extremamente rápido, com hashes de 32, 64 e 128 bits idênticos em diferentes plataformas. xxHash é um algoritmo de hash não criptográfico escrito em C, voltado a cargas de trabalho em que a velocidade do hashing é importante, como tabelas hash, filtros Bloom, checksums e deduplicação de dados. É portável e produz resultados idênticos em sistemas little-endian e big-endian; além disso, suas saídas permanecem estáveis entre versões depois de finalizadas.
- xxHash é gratuito? Qual é a licença?
- xxHash é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
- xxHash ainda é mantido?
- Manutenção ativa. O último commit de xxHash foi em 29 de out. de 2026.
- Para que posso usar xxHash?
- Definir chaves para entradas em tabelas hash ou filtros Bloom quando a velocidade em entradas pequenas é importante. Calcular checksums rápidos de arquivos com a ferramenta de linha de comando xxhsum. Detectar blocos de dados duplicados em armazenamento ou pipelines de deduplicação. Incorporar um hash rápido em aplicações C ou C++ sensíveis ao desempenho.
- Como instalar xxHash?
- Compile a biblioteca e a CLI xxhsum com make: make Calcule o hash deste arquivo README com XXH3 usando xxhsum: ./xxhsum -H3 README.md
- Onde consigo xxHash?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/Cyan4973/xxHash
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Suíte de testes que mede a velocidade e a qualidade estatística de funções hash e apresenta uma ampla tabela de implementações avaliadas.
Biblioteca PHP para representar e manipular coleções, com classes tipadas de coleções e mapas inspiradas no Java Collections Framework.
Biblioteca de strings acelerada por SIMD e SWAR para C, C++, Python, Rust, JavaScript, Go e outras linguagens, com busca, hashing, ordenação e distâncias de ediçã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.
Coleção de bibliotecas C/C++ de arquivo único, em domínio público ou sob licença MIT, para carregar imagens, rasterizar fontes, lidar com estruturas de dados e muito mais.