crc32fast

Fast, SIMD-accelerated CRC32 (IEEE) checksum computation for Rust

Library
Cargo
v1.5.2
338 stars
MIT OR Apache-2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
65 /100 Good
Development Activity 76
Maintenance 32
Community 72
Maturity 60
Momentum 20

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
80 /100 Excellent
Architecture 82
Code Quality 85
Innovation 74
Learning Curve 78

crc32fast is a Rust crate providing fast, SIMD-accelerated CRC32 (IEEE) checksum computation. It ships a portable baseline implementation alongside optimized paths using sse/pclmulqdq on x86 and crc32 instructions on aarch64, with automatic runtime CPU feature detection choosing the fastest available implementation via the Hasher::new constructor.

With over half a billion downloads, it is one of the most widely depended-upon crates in the Rust ecosystem, used transitively by compression, archive, and networking crates that need CRC32 checksums (such as flate2 and zip). It supports no_std environments for embedded use when the optional std feature is disabled.

What You Get

  • A simple hash(&[u8]) -> u32 convenience function for one-shot checksum computation
  • An incremental Hasher type for streaming large inputs through update/finalize
  • Runtime CPU feature detection that transparently picks the fastest available implementation (baseline, pclmulqdq on x86, crc32 on aarch64)
  • no_std support via an optional std feature, for embedded and kernel-level use
  • Fuzz-tested (via cargo-fuzz/libFuzzer) and address-sanitized unsafe SIMD code paths

Common Use Cases

  • Computing CRC32 checksums for file formats that require them (ZIP, gzip, PNG) inside archive/compression crates
  • Verifying data integrity for network protocols or storage formats that embed a CRC32 trailer
  • High-throughput checksum computation in performance-sensitive Rust services processing large byte streams
  • Embedded/no_std firmware that needs a dependency-light CRC32 implementation

Under The Hood

Architecture - The crate is organized around a public Hasher and a free hash function in lib.rs, which dispatch to one of several backend implementations: baseline.rs provides a portable, table-driven implementation (table.rs holds the precomputed CRC lookup tables) used whenever no SIMD path is available or std is disabled, while src/specialized/ contains architecture-specific pclmulqdq (x86/x86_64) and crc32 (aarch64) intrinsic implementations selected via runtime CPU feature detection performed once in Hasher::new. combine.rs implements CRC combination math so two checksums computed over adjacent byte ranges can be merged without re-hashing, enabling parallel/chunked checksum computation. Tech Stack - Pure Rust, edition 2021, with a single runtime dependency (cfg-if) for conditional compilation across the baseline/specialized backends; build.rs detects target capabilities at compile time. Dev-dependencies (bencher, quickcheck, rand) support benchmarking and property-based testing. Code Quality - Correctness of the unsafe SIMD code is validated through property-based tests (quickcheck) plus fuzz testing via cargo-fuzz/libFuzzer across debug and release profiles (see the fuzz/ directory), and every commit is run under an address sanitizer in CI — a notably rigorous safety bar for a crate built around raw SIMD intrinsics. API Design - The API is deliberately minimal: a one-line hash() for simple cases and a Hasher with update/finalize for streaming, mirroring the shape of Rust’s standard std::hash::Hasher trait so it feels idiomatic to Rust users, with feature flags (std, nightly) clearly documented for constrained targets.

Used by 7 apps in this directory

TypeScript
82%
Other

AFFiNE

Collaboration · Note Taking · Productivity

73,040

Write, draw, and plan in one infinite canvas — the open-source alternative to Notion and Miro that keeps your data yours.

View details
91
Repo Health
87
Technical
67
Dependency
Built with
TypeScript 82%
Rust 11%
Updated 5 days ago
TypeScript
54%
MIT

Anarlog

AI Assistants · Note Taking · Productivity

9,404

Anarlog is an open-source, local-first AI meeting notetaker that records, transcribes, and summarizes meetings entirely on your device — no cloud lock-in, no mandatory account, and every note saved as a plain markdown file you own forever.

View details
86
Repo Health
77
Technical
68
Dependency
Built with
TypeScript 54%
Rust 34%
Updated 4 days ago
Rust
54%
Other

Cap

Team Chat · Video Conferencing

22,884

Open source Loom alternative with GPU-accelerated recording, instant share links, AI summaries, and full self-hosting via Docker Compose.

View details
89
Repo Health
81
Technical
64
Dependency
Built with
Rust 54%
TypeScript 42%
Updated 4 days ago
Rust
99%
Other

Fluree DB

Databases

469

A temporal, verifiable graph database with git-like branching, integrated vector/text/geo search, and RDF/SPARQL/JSON-LD/openCypher support — benchmarked at 10.4x faster than the next database on the full Wikidata dump.

View details
87
Repo Health
74
Technical
65
Dependency
Built with
Rust 99%
Updated 5 days ago
Python
82%
Apache 2.0

headroom

AI Development · Developer Tools

73,966

Compress everything your AI agent reads — tool outputs, logs, RAG chunks, and files — before it reaches the LLM, achieving 60–95% fewer tokens with the same answers.

View details
85
Repo Health
86
Technical
69
Dependency
Built with
Python 82%
Rust 12%
Updated 5 days ago
TypeScript
38%
AGPL 3.0

OpenObserve

Analytics · Devops · Monitoring

22,161

Open source observability platform for logs, metrics, traces, and real user monitoring — delivering 140x lower storage costs than Elasticsearch with a single binary you can run in under 2 minutes.

View details
90
Repo Health
9
Technical
71
Dependency
Built with
TypeScript 38%
Rust 30%
Vue 18%
Updated 4 days ago
Java
93%
Apache 2.0

QuestDB

Analytics · Databases

17,360

A high-performance, open-source time-series database built for financial market data, IoT telemetry, and real-time analytics, combining a zero-GC Java/C++ core with SIMD-accelerated SQL and a WAL-to-Parquet storage engine.

View details
91
Repo Health
86
Technical
67
Dependency
Built with
Java 93%
Updated 4 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers