표준 unordered 및 ordered 컨테이너를 대체할 수 있는 빠르고 메모리 효율적인 해시 맵·세트와 B-tree 컨테이너를 제공하는 헤더 전용 C++ 라이브러리입니다.
Cyan4973/xxHash
플랫폼에 관계없이 동일한 32·64·128비트 해시를 생성하는 초고속 비암호학적 해싱용 C 라이브러리입니다.
- 스타
- 11,410
- 포크
- 946
- 열린 이슈
- 25
- 마지막 커밋
- 9일 전
어떤 프로젝트인가요?
xxHash는 해싱 속도가 중요한 해시 테이블, 블룸 필터, 체크섬, 데이터 중복 제거 등의 작업을 위해 C로 작성된 비암호학적 해시 알고리즘입니다. 이식성이 뛰어나며 리틀엔디안과 빅엔디안 시스템에서 동일한 결과를 생성하고, 최종 확정된 출력은 릴리스가 바뀌어도 안정적으로 유지됩니다.
라이브러리는 XXH32, XXH64, XXH3를 제공하며, XXH3는 벡터화 연산을 사용하는 64비트 및 128비트(XXH128) 변형을 지원합니다. 새 애플리케이션에는 XXH3_64bits()를 기본값으로 사용하는 것이 좋습니다. 체크섬 생성 및 검증을 위한 xxhsum 명령줄 도구와 XXH_INLINE_ALL을 통한 헤더 전용 모드도 포함되어 있습니다.
xxHash는 서명, 비밀번호 저장 또는 보안에 민감한 용도에는 적합하지 않습니다. 빌드 옵션으로 인라이닝, 엔디안, 메모리 접근 방식, 임베디드 또는 리소스가 제한된 대상의 바이너리 크기 축소를 설정할 수 있습니다.
핵심 기능
- 0132비트, 64비트, 128비트 길이의 비암호학적 해시를 제공합니다.
- 02리틀엔디안과 빅엔디안 플랫폼에서 동일한 출력을 생성합니다.
- 03AVX2 및 SSE2 경로를 지원하는 벡터화 XXH3 및 XXH128 구현을 제공합니다.
- 04크기를 알 수 없는 입력을 해싱하는 스트리밍 API를 지원합니다.
- 05XXH_INLINE_ALL을 통해 헤더 전용으로 통합할 수 있습니다.
- 06임베디드 대상에서 바이너리 크기를 줄이거나 기능을 비활성화하는 빌드 매크로를 제공합니다.
활용 사례
- 작은 입력에서도 속도가 중요한 해시 테이블이나 블룸 필터의 키를 생성합니다.
- xxhsum 명령줄 도구로 파일의 빠른 체크섬을 계산합니다.
- 스토리지나 중복 제거 파이프라인에서 중복 데이터 블록을 감지합니다.
- 성능이 중요한 C 또는 C++ 애플리케이션에 빠른 해시를 통합합니다.
빠른 시작
- 1
make로 라이브러리와 xxhsum CLI를 빌드합니다
make - 2
xxhsum을 사용해 이 README 파일을 XXH3로 해시합니다
./xxhsum -H3 README.md
사용 전 알아둘 점
- xxHash는 암호화 해시가 아니므로 서명이나 비밀번호 저장에 사용하면 안 됩니다.
- 메타데이터에 라이선스가 NOASSERTION으로 표시되어 있으므로 사용 전에 저장소의 라이선스 파일을 확인하세요.
토픽
자주 묻는 질문
- xxHash은(는) 무엇인가요?
- 플랫폼에 관계없이 동일한 32·64·128비트 해시를 생성하는 초고속 비암호학적 해싱용 C 라이브러리입니다. xxHash는 해싱 속도가 중요한 해시 테이블, 블룸 필터, 체크섬, 데이터 중복 제거 등의 작업을 위해 C로 작성된 비암호학적 해시 알고리즘입니다. 이식성이 뛰어나며 리틀엔디안과 빅엔디안 시스템에서 동일한 결과를 생성하고, 최종 확정된 출력은 릴리스가 바뀌어도 안정적으로 유지됩니다.
- xxHash은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- xxHash은(는) Other 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- xxHash은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. xxHash의 마지막 커밋은 2026년 10월 29일입니다.
- xxHash은(는) 어디에 사용할 수 있나요?
- 작은 입력에서도 속도가 중요한 해시 테이블이나 블룸 필터의 키를 생성합니다. xxhsum 명령줄 도구로 파일의 빠른 체크섬을 계산합니다. 스토리지나 중복 제거 파이프라인에서 중복 데이터 블록을 감지합니다. 성능이 중요한 C 또는 C++ 애플리케이션에 빠른 해시를 통합합니다.
- xxHash는 어떻게 설치하나요?
- make로 라이브러리와 xxhsum CLI를 빌드합니다: make xxhsum을 사용해 이 README 파일을 XXH3로 해시합니다: ./xxhsum -H3 README.md
- xxHash은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/Cyan4973/xxHash
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
해시 함수의 속도와 통계적 품질을 측정하고, 테스트한 구현을 대규모 표로 정리한 테스트 도구 모음입니다.
Java Collections Framework에서 영감을 받은 타입 지정 컬렉션 및 맵 클래스를 제공하는 PHP 라이브러리입니다.
C, C++, Python, Rust, JavaScript, Go 등에서 검색, 해싱, 정렬, 편집 거리를 지원하는 SIMD·SWAR 가속 문자열 라이브러리입니다.
primitive 컬렉션, off-heap 버퍼, 큐, 타이머 휠 등을 제공하는 고성능 Java 자료구조 및 유틸리티 라이브러리입니다.
이미지 로딩, 폰트 래스터화, 자료 구조 등을 위한 단일 파일 C/C++ 라이브러리 모음으로, 퍼블릭 도메인 또는 MIT 라이선스로 제공됩니다.