Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. checksum

checksum

MITGo

A Go library for computing message digests (MD5, SHA256, SHA1, CRC32, BLAKE2s-256) for large files efficiently.

GitHubGitHub
112 stars16 forks0 contributors

What is checksum?

Checksum is a Go library that computes cryptographic hash values (message digests) for files, supporting algorithms like MD5, SHA256, SHA1, CRC32, and BLAKE2s-256. It solves the problem of verifying file integrity and detecting changes in large files efficiently within Go applications.

Target Audience

Go developers who need to compute checksums for file verification, data integrity checks, or security-related tasks, especially when dealing with large files.

Value Proposition

Developers choose Checksum for its simple, focused API that handles multiple hash algorithms with large file support, avoiding the complexity of lower-level Go crypto packages while maintaining performance.

Overview

Compute message digest for large files in Go

Use Cases

Best For

  • Verifying file integrity after downloads or transfers
  • Computing checksums for large ISO or backup files
  • Data validation in Go-based file processing pipelines
  • Implementing file change detection mechanisms
  • Adding cryptographic hash support to Go CLI tools
  • Educational projects learning about hash functions in Go

Not Ideal For

  • Projects requiring hash algorithms beyond MD5, SHA256, SHA1, CRC32, and BLAKE2s-256, such as SHA-512 or newer cryptographic standards.
  • Applications that need to hash data from non-file sources like strings, byte slices, or network streams directly.
  • Environments where minimizing external dependencies is critical, as Go's standard crypto package can handle checksums with more code but no added libs.

Pros & Cons

Pros

Simple, Focused API

Provides dedicated functions like MD5sum() and SHA256sum() that return hash strings, making it easy to compute checksums without diving into Go's lower-level crypto APIs.

Large File Optimization

Designed to handle potentially large files efficiently without excessive memory usage, as highlighted in the README's philosophy and key features.

Multiple Algorithm Support

Includes common hash algorithms like MD5, SHA256, and CRC32 through unified functions, simplifying file integrity verification for various use cases.

Built-in Error Handling

Functions return errors for file operations, allowing robust integration and better debugging in Go applications, as shown in the usage example.

Cons

Limited Algorithm Scope

Only supports a fixed set of hash algorithms; if you need others like SHA-384 or BLAKE2b, you must use Go's crypto package or another library.

File-Only Hashing

Restricted to file paths, so hashing strings or in-memory data requires workarounds like writing to temporary files, adding complexity.

No Streaming API

Lacks support for incremental or streaming hashing, which can be a drawback for real-time data processing or very large datasets beyond single files.

Frequently Asked Questions

Quick Stats

Stars112
Forks16
Contributors0
Open Issues1
Last commit2 years ago
CreatedSince 2014

Tags

#message-digest#md5#go-package#go-library#large-files#checksum#golang#cryptography#go#sha1#crc32#file-integrity#sha256

Built With

G
Go

Included in

Go169.1k
Auto-fetched 16 hours ago

Related Projects

pdfcpupdfcpu

PDF tooling for Go and the command line.

Stars8,725
Forks621
Last commit4 days ago
aferoafero

The Universal Filesystem Abstraction for Go

Stars6,679
Forks569
Last commit16 days ago
gdugdu

Fast disk usage analyzer with console interface written in Go

Stars5,841
Forks215
Last commit1 day ago
go-wkhtmltopdfgo-wkhtmltopdf

Golang commandline wrapper for wkhtmltopdf

Stars1,181
Forks159
Last commit8 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub