Why iban-commons?
Developed with a focus on Clean Code, Compatibility, and Performance, this library is designed for top-performance systems and headache-free operation.
- 1 Strict ISO 13616 Compliance
- 2 100% Test Coverage, PI-tested
- 3 Compatible (Java 8+)
- 4 Immutable & Thread-safe
- 5 Zero Dependencies
- 6 Small Footprint (~100 kB)
- 7 Simple & intuitive API
- 8 Open Source & Free of Charge
Quick Start
Maven Dependency
<dependency>
<groupId>de.speedbanking</groupId>
<artifactId>iban-commons</artifactId>
<version>1.8.1</version>
</dependency>
Java Example
String s = "DE91100000000123456789";
if (Iban.isValid(s)) {
System.out.println("Valid IBAN: " + s);
}
try {
Iban iban = Iban.of(s);
System.out.println("Country Code: " + iban.getCountryCode()); // DE
System.out.println("Check Digits: " + iban.getCheckDigits()); // 91
System.out.println("BBAN : " + iban.getBban()); // 100000000123456789
} catch (InvalidIbanException ex) {
System.err.println("Invalid IBAN: " + ex);
}
More Examples
Performance
Leading Throughput
Outperforms all tested libraries, reaching over 5,200 operations per second for pure validation.
Superior Creation
About 3.4x faster and uses 4.4x less memory than alternatives when creating immutable objects.
Minimal GC Pressure
With only ~137 MB/op for validation (vs. ~1627 MB/op for iban4j), iban-commons drastically reduces allocation overhead.
Throughput Comparison
Operations per second (higher is better) on Intel i7-1165G7 @ 2.8GHz (4 Cores / 8 Threads), 32 GiB DDR4
JMH 1.37 (using compiler blackholes) | Eclipse Temurin OpenJDK 21 | Ubuntu 24.04.3 LTS (Kernel 6.8.x)