Migrating the Imixs SEPA Adapter to IBAN Commons

When we first built our Imixs SEPA Adapter Project , we relied on iban4j for IBAN and BIC validation — a solid and well-known library in the Java ecosystem. But now we decided to switch to the new open source library iban-commons.

Why We Switched to IBAN Commons

iban4j’s API is notably more complex than iban-commons — it relies on a builder pattern for constructing IBAN objects and, as the benchmarks reveal, is not particularly memory-efficient. For the Imixs-SEPA workflow adapter project that may process hundreds of payment records, that matters.

With PR #187, we have now migrated to iban-commons by SpeedBanking, and the difference was immediately noticeable — not just in performance, but in code clarity.

The API is refreshingly simple:

No builder boilerplate. No unnecessary imports. Just clean, readable code.

What impressed us most is that iban-commons is not just a drop-in replacement — it’s a genuinely better library:

  • Zero dependencies — no transitive baggage that could conflict with your Jakarta EE or Spring stack
  • ~100 kB JAR — a tiny footprint for a production-grade library
  • Java 8 compatible — broader reach than iban4j
  • Up to 6.4x faster than iban4j in pure validation throughput (JMH benchmarks)
  • Up to 11.9x lower memory allocation — significantly less GC pressure
  • Immutable and thread-safe Iban and Bic objects out of the box
  • 95+ countries supported based on the SWIFT IBAN Registry
  • SEPA-aware — you can directly check iban.isSepa() before routing a payment

The library also provides safe parsing via Optional, which is a welcome modern Java pattern:

A Shout-Out to the Open Source Community

Libraries like iban-commons are a great example of what makes open source so valuable: a focused, well-crafted tool that solves one problem extremely well, with no strings attached (Apache 2.0 licensed). The benchmarks are published, the code is transparent, and the API is thoughtfully designed.

If your Java project handles IBAN or BIC validation, we strongly recommend giving iban-commons a look. And if you find it useful, give it a ⭐ on GitHub.

Leave a Reply

Your email address will not be published. Required fields are marked *