A stream implementation for Python that provides transparent base64 encoding and decoding of an underlying stream. This project is designed to develop a class, :class:`base64io.Base64IO`, that implements a streaming interface for Base64 encoding. Python has supported native Base64 encoding since version 2.4. However, there is no streaming interface for Base64 encoding, and none is available from the community. The legacy base64.encode and base64.decode interface lets you shuffle data between two streams, but it assumes that you have two complete streams. We wanted a standard stream that applies Base64 encoding and decoding. :class:`base64io.Base64IO` provides an io streaming interface with context manager support that transparently Base64-encodes data read from it. You can use it to transform large files without caching the entire context in memory or to transform an existing stream.
Features
- Has no dependencies other than the standard library
- Should work with any version of Python greater than 2.6
- We test it on CPython 2.6, 2.7, 3.3, 3.4, 3.5, 3.6, and 3.7
- The Base64 transformation might hold up to two bytes of unencoded data
- This library is licensed under the Apache 2.0 License
- Encode data before writing it to the wrapped stream