I've extended and partially rewritten the Pinefs RPC compiler. The main goal was Sun/glibc rpcgen compatibility and interoperability. The new features are:
Here is the source. It includes both the compiler and the runtime poncrpc package. It also includes ply 1.5 which is required to generate the compiler tables, but not run it thereafter. The latest version of ply (2.2) works too. Unfortunately in 2.2 yacc prints the character number instead of the line number on a parsing error, which makes rpcc harder to use. There only one client example included right now, and unfortunately it requires a motefs client to run, but is useful as template.
While rpc.py is not yet a standard Python library, I consider it the most likely candidate for a future standard library. So rpcc generates code that is compatible with transports from this module, which in turn require xdrlib Packer and Unpacker compatibility.
Named arguments are not not in RFC 1831, but are extremely convenient and implemented in the C rpcgen. If you choose not to use this extension you will get argX names for your arguments just like rpcgen does.
New style calls automatically wrap all arguments in a struct. This is compatible with old style one argument calls because the XDR representation of a struct is merely the concatenation of its members. Therefore, the compiler always supports and generates new style calls.
Here is a list of other maintained Python RPC compilers and how they differ from rpcc: