I forked eth-abi, added comprehensive type annotations, and compiled it to C. It does the same stuff, now ~2-6x faster.
This fork will be kept up-to-date with eth-abi. I will pull updates as they are released and push new faster-eth-abi releases to PyPI.
Starting in v5.2.12, all faster-eth-abi Exception classes inherit from the matching Exception class in eth-abi, so porting to faster-eth-abi does not require any change to your existing exception handlers. All existing exception handling in your codebase will continue to work as it did when originaly implemented.
We benchmark faster-eth-abi against the original eth-abi for your convenience. See results.
You can find the compiled C code and header files in the build directory.
You may also be interested in: faster-web3.py, faster-hexbytes, and faster-eth-utils
Python utilities for working with Ethereum ABI definitions, especially encoding and decoding
Read the documentation.
View the change log.
python -m pip install faster-eth-abi