Why SmartFaker

There are dozens of fake-data libraries on PyPI. SmartFaker exists for a specific niche the others don’t fully cover.

No network, ever

The bundled JSON data set means SmartFaker is safe in air-gapped CI, behind restrictive corporate firewalls, in serverless cold-starts, and inside Docker images that ban outbound traffic.

Sync and async, with identical contracts

Other libraries either give you a sync API and ask you to wrap it in a thread, or expose an async-only API that becomes painful in CLI scripts. SmartFaker gives you both, with matching method signatures:

faker.address("us")            # sync
await faker.aaddress("us")     # async

Real per-country IBAN structure

IBANs are not just random digits. SmartFaker implements 57 country-specific BBAN layouts (Italian CIN, Belgian mod-97, French key, German bank codes, US routing numbers, …) and re-validates every generated IBAN with the ISO 13616 MOD-97 algorithm before returning it.

Tiny footprint

The wheel ships only the address JSON files, the IBAN module, the Faker class and the bundled data — no native code, no large runtime dependencies, no cloud SDKs.

Predictable shape, easy to mock

Every response uses the same documented schema, so swapping SmartFaker for a fixture in tests is trivial.