3.6 KiB
3.6 KiB
0.13.0
- Config methods are const
- Added
EncoderStringWriterto allow encoding directly to a String EncoderWriternow owns its delegate writer rather than keeping a reference to it (though refs still work)- As a consequence, it is now possible to extract the delegate writer from an
EncoderWriterviafinish(), which returnsResult<W>instead ofResult<()>. If you were callingfinish()explicitly, you will now need to uselet _ = foo.finish()instead of justfoo.finish()to avoid a warning about the unused value.
- As a consequence, it is now possible to extract the delegate writer from an
- When decoding input that has both an invalid length and an invalid symbol as the last byte,
InvalidBytewill be emitted instead ofInvalidLengthto make the problem more obvious.
0.12.2
- Add
BinHexalphabet
0.12.1
- Add
Bcryptalphabet
0.12.0
- A
Readimplementation (DecoderReader) to let users transparently decoded data from a b64 input source - IMAP's modified b64 alphabet
- Relaxed type restrictions to just
AsRef<[ut8]>for mainencode*/decode*functions - A minor performance improvement in encoding
0.11.0
- Minimum rust version 1.34.0
no_stdis now supported via the two new featuresallocandstd.
0.10.1
- Minimum rust version 1.27.2
- Fix bug in streaming encoding (#90): if the underlying writer didn't write all the bytes given to it, the remaining bytes would not be retried later. See the docs on
EncoderWriter::write. - Make it configurable whether or not to return an error when decoding detects excess trailing bits.
0.10.0
- Remove line wrapping. Line wrapping was never a great conceptual fit in this library, and other features (streaming encoding, etc) either couldn't support it or could support only special cases of it with a great increase in complexity. Line wrapping has been pulled out into a line-wrap crate, so it's still available if you need it.
Base64Displaycreation no longer uses aResultbecause it can't fail, which means its helper methods for common configs thatunwrap()for you are no longer needed
- Add a streaming encoder
Writeimpl to transparently base64 as you write. - Remove the remaining
unsafecode. - Remove whitespace stripping to simplify
no_stdsupport. No out of the box configs use it, and it's trivial to do yourself if needed:filter(|b| !b" \n\t\r\x0b\x0c".contains(b). - Detect invalid trailing symbols when decoding and return an error rather than silently ignoring them.
0.9.3
- Update safemem
0.9.2
- Derive
CloneforDecodeError.
0.9.1
- Add support for
crypt(3)'s base64 variant.
0.9.0
decode_config_slicefunction for no-allocation decoding, analogous toencode_config_slice- Decode performance optimization
0.8.0
encode_config_slicefunction for no-allocation encoding
0.7.0
STANDARD_NO_PADconfigBase64Displayheap-free wrapper for use in format strings, etc
0.6.0
- Decode performance improvements
- Use
unsafein fewer places - Added fuzzers
0.5.2
- Avoid usize overflow when calculating length
- Better line wrapping performance
0.5.1
- Temporarily disable line wrapping
- Add Apache 2.0 license
0.5.0
- MIME support, including configurable line endings and line wrapping
- Removed
decode_ws - Renamed
Base64ErrortoDecodeError
0.4.1
- Allow decoding a
AsRef<[u8]>instead of just a&str
0.4.0
- Configurable padding
- Encode performance improvements
0.3.0
- Added encode/decode functions that do not allocate their own storage
- Decode performance improvements
- Extraneous padding bytes are no longer ignored. Now, an error will be returned.