Re-use of standard library across implementations

Thank you for positioning about this subject.

My plan is to use _pycodecs.py in Grumpy, propose it to be used on RustPython and look for others and their interest (Micropython and Transcrypt to start).

Micropython for example support only utf-8, is not extensible and have codecs.py as a dummy. Having codecs.py importable in this environment would fix some issues on their side.

In fact, I already started hacking a _pycodecs.py.

Side question:

Is there a performance reason for this to be a tuple or I can replace with a bare old object to simplify some code? Assuming backwards compatibility and tests passing, of course.