Hey we had a correspondence on HN. I didn't realize how bad the faker library was until you pointed out the performance issues. Your benchmark isn't accurate, though, because of how you're timing.
You're not performance benchmarking plait as well as you could be. Instead, try the "perf" library from pypi:
pip install perf
Use this gist as a template to run plait through. The example is intuitive enough that you could figure out what the change for plait: https://gist.github.com/Dowwie/499d9fb0344d7f4345ff0e669a7d4a36
simply execute the benchmark python script from the command line and perf will run, eventually returning results to stdout
I was curious how much faster a rust binding would be than faker so I started to work on a port. The library currently only generates a fake full name but it won't take much time to port the rest over.
These are the perf results for pyfakers vs faker -- almost 100 times faster using rust and a little bit of cffi overhead:
pyfakers: Mean +- std dev: 1.73 ms +- 0.08 ms
faker: Mean +- std dev: 127 ms +- 1 ms
what are your plait perf results?