2015-03-16
- New: Read and write signed decimal and unsigned hexadecimal values in
BufferedSource
andBufferedSink
. Unlike the alternatives, these methods don’t do any memory allocations! - New: Segment sharing. This improves the runtime of operations like
Buffer.clone()
andBuffer.copyTo()
by sharing underlying segments between buffers. - New:
Buffer.snapshot()
returns an immutable snapshot of a buffer as aByteString
. This builds on segment sharing so that snapshots are shallow, immutable copies. - New:
ByteString.rangeEquals()
. - New:
ByteString.md5()
andByteString.sha256()
. - New:
ByteString.base64Url()
returns URL-safe Base64. The existing decoding method has been extended to support URL-safe Base64 input. - New:
ByteString.substring()
returns a prefix, infix, or suffix. - New:
Sink
now implementsjava.io.Flushable
. - Fix:
Buffer.write(Source, long)
now always writes fully. The previous behavior would return as soon as any data had been written; this was inconsistent with all other write() methods in the API. - Fix: don't leak empty segments in DeflaterSink and InflaterSource. (This was unlikely to cause problems in practice.)
2014-12-30
- Fix:
Okio.buffer()
always buffers for better predictability. - Fix: Provide context when
readUtf8LineStrict()
throws. - Fix: Buffers do not call through the
Source
on zero-byte writes.
2014-12-11
- Do UTF-8 encoding natively for a performance increase, particularly on Android.
- New APIs:
BufferedSink.emit()
,BufferedSource.request()
andBufferedSink.indexOfElement()
. - Fixed a performance bug in
Buffer.indexOf()
2014-08-08
- Added
read(byte[])
,read(byte[], offset, byteCount)
, andvoid readFully(byte[])
toBufferedSource
. - Refined declared checked exceptions on
Buffer
methods.
2014-05-23
- Bumped release version. No other changes!
2014-05-03
- Use 0 as a sentinel for no timeout.
- Make AsyncTimeout public.
- Remove checked exception from Buffer.readByteArray.
2014-04-24
- Eagerly verify preconditions on public APIs.
- Quick return on Buffer instance equivalence.
- Add delegate types for Sink and Source.
- Small changes to the way deadlines are managed.
- Add append variant of Okio.sink for File.
- Methods to exhaust BufferedSource to byte[] and ByteString.
2014-04-18
- Don't use getters in timeout.
- Use the watchdog to interrupt sockets that have reached deadlines.
- Add java.io and java.nio file source/sink helpers.
2014-04-17
- Methods to read a buffered source fully in UTF-8 or supplied charset.
- API to read a byte[] directly.
- New methods to move all data from a source to a sink.
- Fix a bug on input stream exhaustion.
2014-04-15
- Make ByteString serializable.
- New API:
ByteString.of(byte[] data, int offset, int byteCount)
- New API: stream-based copy, write, and read helpers.
2014-04-08
- Initial public release.
- Imported from OkHttp.