4.4 KiB
4.4 KiB
Change Log
Version 1.6.0
2015-08-25
- New:
BufferedSource.indexOf(ByteString)
searches a source for the next occurrence of a byte string. - Fix: Recover from unexpected
AssertionError
thrown on Android 4.2.2 and earlier when asynchronously closing a socket.
Version 1.5.0
2015-06-19
- Sockets streams now throw
SocketTimeoutException
. This builds on new extension point inAsyncTimeout
to customize the exception when a timeout occurs. - New:
ByteString
now implementsComparable
. The comparison sorts bytes as unsigned: {@code ff} sorts after {@code 00}.
Version 1.4.0
2015-05-16
- Timeout exception changed. Previously
Timeout.throwIfReached()
would throwInterruptedIOException
on thread interruption, andIOException
if the deadline was reached. Now it throwsInterruptedIOException
in both cases. - Fix: throw
EOFException
when attempting to read digits from an empty source. Previously this would crash with an unchecked exception. - New: APIs to read and write UTF-8 code points without allocating strings.
- New:
BufferedSink
can now write substrings directly, potentially saving an allocation for some callers. - New:
ForwardingTimeout
class.
Version 1.3.0
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.)
Version 1.2.0
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.
Version 1.1.0
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()
Version 1.0.1
2014-08-08
- Added
read(byte[])
,read(byte[], offset, byteCount)
, andvoid readFully(byte[])
toBufferedSource
. - Refined declared checked exceptions on
Buffer
methods.
Version 1.0.0
2014-05-23
- Bumped release version. No other changes!
Version 0.9.0
2014-05-03
- Use 0 as a sentinel for no timeout.
- Make AsyncTimeout public.
- Remove checked exception from Buffer.readByteArray.
Version 0.8.0
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.
Version 0.7.0
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.
Version 0.6.1
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.
Version 0.6.0
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.
Version 0.5.0
2014-04-08
- Initial public release.
- Imported from OkHttp.