Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. checkdigit

checkdigit

MITGov1.1.0

A Go library implementing check digit algorithms (Luhn, Verhoeff, Damm) and calculators for ISBN, EAN, JAN, UPC, and other standards.

GitHubGitHub
114 stars8 forks0 contributors

What is checkdigit?

checkdigit is a Go library that implements various check digit algorithms and calculators for validating and generating check digits. It solves the problem of ensuring data integrity in systems that handle standardized numbers like ISBNs, barcodes, and product codes by providing reliable, ready-to-use implementations.

Target Audience

Go developers building applications that require validation of identification numbers, barcodes, ISBNs, or other product codes, such as e-commerce systems, inventory management, or library software.

Value Proposition

Developers choose checkdigit because it offers a comprehensive, well-tested collection of check digit algorithms in a single, lightweight Go library, saving time and reducing errors compared to custom implementations.

Overview

Provide check digit algorithms and calculators written in Go

Use Cases

Best For

  • Validating ISBN numbers in book management systems
  • Generating check digits for EAN or UPC barcodes in retail applications
  • Implementing error detection for identification numbers using the Verhoeff algorithm
  • Adding data integrity checks to inventory or shipping systems with SSCC codes
  • Ensuring accuracy in financial or ID numbers with the Luhn algorithm
  • Building Go services that require robust check digit validation for various standards

Not Ideal For

  • Projects developed in programming languages other than Go
  • Applications requiring real-time barcode image scanning or OCR functionality
  • Systems needing custom or proprietary check digit algorithms not included in the library

Pros & Cons

Pros

Comprehensive Algorithm Suite

Implements Luhn, Verhoeff, and Damm algorithms, covering common error-detection needs from credit cards to secure decimal checks, as listed in the README.

Extensive Calculator Support

Includes calculators for ISBN-10, ISBN-13, EAN, JAN, ITF, UPC, and SSCC, making it versatile for product and identification code validation, as detailed in the provided methods.

High Code Quality

Backed by continuous integration (CI badge), high test coverage (codecov badge), and a good Go Report Card, ensuring reliability and minimal bugs.

Easy Integration

GoDoc provides clear examples for usage, allowing developers to quickly implement check digit functionality without extensive trial and error.

Cons

Language-Locked to Go

Only applicable for Go projects, limiting its use in polyglot environments or for teams using other programming languages.

Sparse Inline Documentation

The README is brief and relies heavily on external godoc for examples, which may lack detailed tutorials or edge-case explanations.

No Custom Algorithm Framework

Focuses on standard algorithms; adding non-standard or proprietary check digit methods requires significant customization or forking the library.

Frequently Asked Questions

Quick Stats

Stars114
Forks8
Contributors0
Open Issues1
Last commit1 year ago
CreatedSince 2019

Tags

#barcode#go-library#data-validation#error-detection

Built With

G
Go

Included in

Go169.1k
Auto-fetched 1 day ago

Related Projects

validatorvalidator

:100:Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving

Stars19,994
Forks1,424
Last commit4 days ago
govalidatorgovalidator

[Go] Package of validators and sanitizers for strings, numerics, slices and structs

Stars6,200
Forks565
Last commit3 days ago
ozzo-validationozzo-validation

An idiomatic Go (golang) validation package. Supports configurable and extensible validation rules (validators) using normal language constructs instead of error-prone struct tags.

Stars4,102
Forks240
Last commit2 years ago
govalidatorgovalidator

Validate Golang request data with simple rules. Highly inspired by Laravel's request validation.

Stars1,345
Forks122
Last commit2 years 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