|
|
|
|
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 in `AsyncTimeout` to customize the exception when a timeout
|
|
|
|
|
occurs.
|
|
|
|
|
* New: `ByteString` now implements `Comparable`. 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
|
|
|
|
|
throw `InterruptedIOException` on thread interruption, and `IOException` if
|
|
|
|
|
the deadline was reached. Now it throws `InterruptedIOException` 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` and `BufferedSink`. Unlike the alternatives, these methods
|
|
|
|
|
don’t do any memory allocations!
|
|
|
|
|
* New: Segment sharing. This improves the runtime of operations like
|
|
|
|
|
`Buffer.clone()` and `Buffer.copyTo()` by sharing underlying segments between
|
|
|
|
|
buffers.
|
|
|
|
|
* New: `Buffer.snapshot()` returns an immutable snapshot of a buffer as a
|
|
|
|
|
`ByteString`. This builds on segment sharing so that snapshots are shallow,
|
|
|
|
|
immutable copies.
|
|
|
|
|
* New: `ByteString.rangeEquals()`.
|
|
|
|
|
* New: `ByteString.md5()` and `ByteString.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 implements `java.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()` and `BufferedSink.indexOfElement()`.
|
|
|
|
|
* Fixed a performance bug in `Buffer.indexOf()`
|
|
|
|
|
|
|
|
|
|
## Version 1.0.1
|
|
|
|
|
|
|
|
|
|
_2014-08-08_
|
|
|
|
|
|
|
|
|
|
* Added `read(byte[])`, `read(byte[], offset, byteCount)`, and
|
|
|
|
|
`void readFully(byte[])` to `BufferedSource`.
|
|
|
|
|
* 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.
|