3 releases (stable)

1.0.1 Aug 28, 2020
1.0.0 Sep 24, 2019
0.1.0 Aug 20, 2015

#931 in Algorithms

Download history 6866/week @ 2024-11-16 5769/week @ 2024-11-23 5200/week @ 2024-11-30 5608/week @ 2024-12-07 6689/week @ 2024-12-14 1244/week @ 2024-12-21 2214/week @ 2024-12-28 4932/week @ 2025-01-04 5362/week @ 2025-01-11 6341/week @ 2025-01-18 6018/week @ 2025-01-25 6053/week @ 2025-02-01 5993/week @ 2025-02-08 4694/week @ 2025-02-15 7145/week @ 2025-02-22 5904/week @ 2025-03-01

25,130 downloads per month
Used in 4 crates

MIT license

9KB
131 lines

luhn-rs

Validates strings and computes check digits using the Luhn algorithm.

Usage

Add luhn under [dependencies] in your Cargo.toml:

[dependencies]
luhn = "1.0.1"

Use the validator!

luhn::valid("4111111111111111"); // true

Append check digits to your strings and make them Luhn-valid!

// A string which doesn't validate
let mut s = "11111111".to_string();
assert!(!valid(&s));

// Let's fix that
s.push(luhn::checksum(s.as_bytes()) as char);
assert_eq!(s, "111111118");
assert!(valid(&s));

lib.rs:

Validates strings and computes check digits using the Luhn algorithm.

It's not a great checksum, but it's used in a bunch of places (credit card numbers, ISIN codes, etc.). More information is available on wikipedia.

Dependencies

~11KB