Repolode
Cyan4973

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. 1

    Compile a biblioteca e a CLI xxhsum com make

    make
  2. 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

#hash-function#checksum#non-cryptographic#performance#hash-table#data-structures#dispersion#hash#hash-checksum#hash-functions

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