Expat, used by Amara 2.x, is not really dead, but is hardly vibrant, and the C/Python interface code is extremely hard to maintain. Meanwhile PyPy has been evolving rapidly, and now handles a lot of algorithmic tasks much faster than CPython, and beat C for a lot of tasks as well. There seems an opportunity to grow Amara in a much more maintainable direction by targeting a Python-only version (intended for running under PyPy), perhaps even as early as Amara 3.0.

The core XML parsing would be written in plain old Python. I'm not sure whether there have been any projects to do so, but if there have, we could reuse their parsers.