Update dependency com.squareup.okio:okio to v1.17.5 - autoclosed
This MR contains the following updates:
Package | Update | Change |
---|---|---|
com.squareup.okio:okio | minor |
1.0.0 -> 1.17.5
|
Release Notes
square/okio
v1.17.5
2019-12-11
- Fix: Don't crash when an
InputStream
source is exhausted exactly at a buffer segment boundary. We had a bug where a sequence of reads could violate a buffer's invariants, and this could result in a crash when subsequent reads encountered an unexpected empty segment.
Version 2.4.1
2019-10-04
- Fix: Don't cache hash code and UTF-8 string in
ByteString
on Kotlin/Native which prevented freezing.
Version 2.4.0
2019-08-26
- New: Upgrade to Kotlin 1.3.50.
Version 2.3.0
2019-07-29
This release changes our build from Kotlin-JVM to Kotlin-multiplatform (which includes JVM). Both native and JavaScript platforms are unstable preview releases and subject to backwards-incompatible changes in forthcoming releases.
To try Okio in a multiplatform project use this Maven coordinate:
api('com.squareup.okio:okio-multiplatform:2.3.0')
You’ll also need to [enable Gradle metadata][gradle_metadata] in your project's settings. The artifact name for JVM projects has not changed.
- New: Upgrade to Kotlin 1.3.40.
- Fix: Use Gradle
api
instead ofimplementation
for the kotlin-stdlib dependency. - Fix: Don't block unless strictly necessary in
BufferedSource.peek()
.
v1.17.4
2019-04-29
- Fix: Don't block unless strictly necessary in
BufferedSource.peek()
.
v1.17.3
2019-01-28
- Fix: Make
Pipe.fold()
close the underlying sink when necessary.
v1.17.2
2019-01-17
- Fix: Make
Pipe.fold()
flush the underlying sink.
v1.17.1
2019-01-16
- Fix: Make the newly-backported
Pipe.fold()
public.
v1.17.0
2019-01-16
- New: Backport
Pipe.fold()
to Okio 1.x.
v1.16.0
2018-10-08
- New: Backport
BufferedSource.peek()
andBufferedSource.getBuffer()
to Okio 1.x. - Fix: Enforce timeouts when closing
AsyncTimeout
sources.
v1.15.0
2018-07-18
- New: Trie-based
Buffer.select()
. This improves performance when selecting among large lists of options. - Fix: Retain interrupted state when throwing
InterruptedIOException
.
v1.14.0
2018-02-11
- New:
Buffer.UnsafeCursor
provides direct access to Okio internals. This API is like Okio's version of Java reflection: it's a very powerful API that can be used for great things and dangerous things alike. The documentation is extensive and anyone using it should review it carefully before proceeding! - New: Change
BufferedSource
to implementjava.nio.ReadableByteChannel
andBufferedSink
to implementjava.nio.WritableByteChannel
. Now it's a little easier to interop between Okio and NIO. - New: Automatic module name of
okio
for use with the Java Platform Module System. - New: Optimize
Buffer.getByte()
to search backwards when doing so will be more efficient. - Fix: Honor the requested byte count in
InflaterSource
. Previously this class could return more bytes than requested. - Fix: Improve a performance bug in
AsyncTimeout.sink().write()
.
v1.13.0
2017-05-12
-
Okio now uses
@Nullable
to annotate all possibly-null values. We've added a compile-time dependency on the JSR 305 annotations. This is a [provided][maven_provided] dependency and does not need to be included in your build configuration,.jar
file, or.apk
. We use@ParametersAreNonnullByDefault
and all parameters and return types are never null unless explicitly annotated@Nullable
. -
Warning: this release is source-incompatible for Kotlin users. Nullability was previously ambiguous and lenient but now the compiler will enforce strict null checks.
v1.12.0
2017-04-11
- Fix: Change Pipe's sink.flush() to not block. Previously closing a pipe's sink would block until the source had been exhausted. In practice this blocked the caller for no benefit.
-
Fix: Change
writeUtf8CodePoint()
to emit?
for partial surrogates. The previous behavior was inconsistent: given a malformed string with a partial surrogate,writeUtf8()
emitted?
butwriteUtf8CodePoint()
threw anIllegalArgumentException
. Most applications will never encounter partial surrogates, but for those that do this behavior was unexpected. - New: Allow length of
readUtf8LineStrict()
to be limited. - New:
Utf8.size()
method to get the number of bytes required to encode a string as UTF-8. This may be useful for length-prefixed encodings. - New: SHA-512 hash and HMAC APIs.
v1.11.0
2016-10-11
-
Fix: The four-argument overload of
Buffer.writeString()
had a major bug where it didn't respect offsets if the specified charset was UTF-8. This was because our short-circuit optimization omitted necessary offset parameters. - New: HMAC support in
HashingSource
,HashingSink
,ByteString
, andBuffer
. This makes it easy to create a keyed-hash message authentication code (HMAC) wherever your data is. Unlike the other hashes, HMAC uses aByteString
secret key for authentication. - New:
ByteString.of(ByteBuffer)
makes it easier to mix NIO with Okio.
v1.10.0
2016-08-28
- Fix: Support reading files larger than 2 GiB with
GzipSource
. Previously attempting to decompress such files would fail due to an overflow when validating the total length. - Fix: Exit the watchdog thread after being idle for 60 seconds. This should make it possible for class unloaders to fully unload Okio.
- New:
Okio.blackhole()
returns a sink where all bytes written are discarded. This is Okio's equivalent of/dev/null
. - New: Encode a string with any charset using
ByteString.encodeString()
and decode strings in any charset usingByteString.string()
. Most applications should preferByteString.encodeUtf8()
andByteString.utf8()
unless it's necessary to support a legacy charset. - New:
GzipSink.deflater()
makes it possible to configure the compression level.
v1.9.0
2016-07-01
- New:
Pipe
makes it easy to connect a producer thread to a consumer thread. Reads block until data is available to read. Writes block if the pipe's is full. Both sources and sinks support timeouts. - New:
BufferedSource.rangeEquals()
makes it easy to compare a range in a stream to an expected value. This does the right thing: it blocks to load the data required return a definitive result. But it won't block unnecessarily. - New:
Timeout.waitUntilNotified()
makes it possible to use nice timeout abstractions on Java's built-in wait/notify primitives. - Fix: Don't return incorrect results when
HashingSource
does large reads. There was a bug where it wasn't traversing through the segments of the buffer being hashed. This means thatHashingSource
was returning incorrect answers for any writes that spanned multiple segment boundaries.
v1.8.0
2016-05-02
- New:
BufferedSource.select(Options)
API for reading one of a set of expected values. - New: Make
ByteString.toString()
andBuffer.toString()
friendlier. These methods return text if the byte string is valid UTF-8. - New: APIs to match byte strings:
indexOf()
,startsWith()
, andendsWith()
.
v1.7.0
2016-04-10
- New: Change the segment size to 8 KiB. This has been reported to dramatically improve performance in some applications.
- New:
md5()
,sha1()
, andsha256()
methods onBuffer
. Also add asha1()
method onByteString
for symmetry. - New:
HashingSource
andHashingSink
. These classes are Okio’s equivalent to the JDK’sDigestInputStream
andDigestOutputStream
. They offer convenientmd5()
,sha1()
, andsha256()
factory methods to avoid an impossibleNoSuchAlgorithmException
. - New:
ByteString.asByteBuffer()
. - Fix: Limit snapshot byte strings to requested size.
- Fix: Change write timeouts to have a maximum write size. Previously large writes could easly suffer timeouts because the entire write was subject to a single timeout.
- Fix: Recover from EBADF failures, which could be triggered by asynchronously closing a stream on older versions of Android.
- Fix: Don't share segments if doing so only saves a small copy. This should improve performance for all applications.
- Fix: Optimize
BufferedSource.indexOfElement()
andindexOf(ByteString)
. Previously this method had a bug that caused it to be very slow on large buffers.
v1.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.
v1.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.
v1.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.)
v1.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.
v1.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()
v1.0.1
2014-08-08
- Added
read(byte[])
,read(byte[], offset, byteCount)
, andvoid readFully(byte[])
toBufferedSource
. - Refined declared checked exceptions on
Buffer
methods.
Configuration
-
If you want to rebase/retry this MR, check this box.
This MR has been generated by Renovate Bot.