Skip to content

chore(deps): update dependency com.squareup.okio:okio to v3#849

Open
renovate[bot] wants to merge 1 commit into8.0.xfrom
renovate/com.squareup.okio-okio-3.x
Open

chore(deps): update dependency com.squareup.okio:okio to v3#849
renovate[bot] wants to merge 1 commit into8.0.xfrom
renovate/com.squareup.okio-okio-3.x

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Feb 9, 2026

This PR contains the following updates:

Package Change Age Confidence
com.squareup.okio:okio 2.8.03.16.4 age confidence

Release Notes

square/okio (com.squareup.okio:okio)

v3.16.4

2025-11-17

  • Fix: Don't delay triggering timeouts. In 3.16.0 we introduced a regression that caused timeouts
    to fire later than they were supposed to.

v3.16.3

2025-11-14

This release is the same as 3.16.2. We forgot to cherry-pick a commit before we released!

v3.16.2

2025-10-14

  • Fix: okio-assetfilesystem APIs now correctly restored as visible to Kotlin.

v3.16.1

2025-10-09

  • Fix: Don't crash when calling Socket.shutdownOutput() or shutdownInput() on an SSLSocket on
    Android API 21. This method throws an UnsupportedOperationException, so we now catch that and
    close the underlying stream instead.

v3.16.0

2025-07-29

  • Fix: Change Socket.asOkioSocket() to resolve its source InputStream and OutputStream
    eagerly. This will throw a SocketException immediately if the socket isn’t connected.
    This behavior is consistent with our similar APIs, Socket.source() and Socket.sink().

  • Fix: Optimize AsyncTimeout on systems with a very large number of active timeouts. This class
    originally kept active timeouts in a linked list; with this update the internal data structure is
    a binary heap. The old runtime was 𝑂(𝑛²) to activate 𝑛 timeouts; with this optimization the
    runtime is 𝑂(𝑛 log 𝑛).

  • Upgrade: [Kotlin 2.2.0][kotlin_2_2_0].

v3.15.0

2025-07-01

  • Upgrade: [kotlinx-datetime 0.7.0-0.6.x-compat][datetime_0_7_0_compat]. The previous 3.14.0
    release, FakeFileSystem broke binary-compatibility for calls to FakeFileSystem(). This
    restores that compatibility.

  • Breaking: Change FakeFileSystem.clock from a JVM field to a property. This avoids a crash
    running Okio in a Gradle 8.x plugin. This change is not binary-compatible.

v3.14.0

2025-06-28

  • Upgrade: [kotlinx-datetime 0.7.0][datetime_0_7_0]. This impacts the okio-fakefilesystem
    artifact only. This is a binary-incompatible backwards-incompatible change that cannot co-exist
    with previous releases of okio-fakefilesystem! If you observe a NoSuchMethodError calling
    FakeFileSystem.init, update the calling code to this release (or newer) and recompile. We don't
    like imposing backwards-incompatible changes like this on you and do so regretfully.

v3.13.0

2025-06-13

  • New: okio.Socket interface. This is a first step towards low-level streaming networking support
    for Kotlin/Multiplatform. This release provides two JVM-only implementations: asOkioSocket()
    adapts a java.net.Socket to our new interface, and inMemorySocketPair() returns a pair of
    mutually-connected sockets. We also anticipate that this interface will be a useful abstraction
    for proxies and tunnels.
  • New: In-development snapshots are now published to the [Central Portal Snapshots repository].

v3.12.0

2025-05-27

  • New: Support an optional end index when searching with BufferedSource.indexOf().
  • Fix: Don't do unnecessary work in BufferedSource.rangeEquals().
  • Upgrade: [Kotlin 2.1.21][kotlin_2_1_21].

v3.11.0

2025-04-09

  • Fix: Clear the deflater's byte array reference
  • New: Faster implementation of String.decodeHex() on Kotlin/JS.
  • New: Declare EXACTLY_ONCE execution for blocks like Closeable.use {} and FileSystem.read {}.
  • Upgrade: [Kotlin 2.1.20][kotlin_2_1_20].

v3.10.2

Compare Source

2025-01-08

  • Fix: okio-nodefilesystem artifact is no longer empty.

v3.10.1

Compare Source

2025-01-07

  • New: FileSystem.close() may prevent future access and/or clean up associated resources depending on the backing implementation. FakeFileSystem will prevent future operations once closed.
  • InputStreams created from BufferedSource.inputStream() now have a more efficient version of InputStream.transferTo() which reduces memory copies.
  • okio-nodefilesystem is no longer publised as a JS project, but a Kotlin multiplatform project with only a JS target. This change should not affect consumers in any way, and is motivated by the Kotlin Gradle plugin deprecating the JS-only plugin. Please use 3.10.2 to ensure this change actually does not affect your builds.

v3.10.0

Compare Source

2025-01-06

This version is equivalent to the subsequent 3.10.1, but it did not fully publish to Maven Central due to infrastructure problems.

v3.9.1

2024-09-12

  • Fix: Support paths containing a single dot (".") in Path.relativeTo.
  • Fix: Do not read from the upstream source when a 0-byte read is requested.
  • Fix: Update kotlinx.datetime to 0.6.0 to correct a Gradle module metadata problem with 0.5.0.
    Note: this artifact is only used in 'okio-fakefilesystem' and 'okio-nodefilesystem' and not in the Okio core.

v3.9.0

2024-03-12

  • New: FileSystem.SYSTEM can be used in source sets that target both Kotlin/Native and
    Kotlin/JVM. Previously, we had this symbol in each source set but it wasn't available to
    common source sets.
  • New: COpaquePointer.readByteString(...) creates a ByteString from a memory address.
  • New: Support InflaterSource, DeflaterSink, GzipSink, and GzipSource in Kotlin/Native.
  • New: Support openZip() on Kotlin/Native. One known bug in this implementation is that
    FileMetadata.lastModifiedAtMillis() is interpreted as UTC and not the host machine's time zone.
  • New: Prefer NTFS timestamps in ZIP file systems' metadata. This avoids the time zone problems
    of ZIP's built-in DOS timestamps, and the 2038 time bombs of ZIP's extended timestamps.
  • Fix: Don't leak file handles to opened JAR files open in FileSystem.RESOURCES.
  • Fix: Don't throw a NullPointerException if Closeable.use { ... } returns null.

v3.8.0

2024-02-09

  • New: TypedOptions works like Options, but it returns a T rather than an index.
  • Fix: Don't leave sinks open when there's a race in Pipe.fold().

v3.7.0

2023-12-16

  • New: Timeout.cancel() prevents a timeout from firing.
  • Breaking: Drop the watchosX86 Kotlin/Native target. From [the Kotlin blog][watchosX86],
    ‘This is an obsolete simulator for Intel Macs. Use the watchosX64 target instead.’
  • New: Add the watchosDeviceArm64 Kotlin/Native target.
  • New: Timeout APIs that accept kotlin.time.Duration.
  • Upgrade: [Kotlin 1.9.21][kotlin_1_9_21].

v3.6.0

2023-10-01

  • Fix: Don't leak file handles when using metadata functions on ZipFileSystem. We had a bug
    where we were closing the .zip file, but not a stream inside of it. We would have prevented
    this bug if only we’d used FakeFileSystem.checkNoOpenFiles() in our tests!
  • Fix: Don't build an index of a class loader's resources in ResourceFileSystem.read(). This
    operation doesn't need this index, and building it is potentially expensive.
  • New: Experimentally support Linux on ARM64 for Kotlin/Native targets (linuxArm64). Note that
    we haven't yet added CI test coverage for this platform.
  • Upgrade: [Kotlin 1.9.10][kotlin_1_9_10].

v3.5.0

2023-08-02

  • New: Support the WebAssembly (WASM) platform. Okio's support for WASM is experimental, but
    improving, just like Kotlin's own support for WASM.
  • New: Adapt WebAssembly System Interface (WASI) API's as an Okio FileSystem using
    WasiFileSystem. This is in the new okio-wasifilesystem module. It requires the [preview1]
    WASI API. We’ll make backwards-incompatible upgrades to new WASI API versions as they become
    available.
  • Fix: Return relative paths in the NIO adapter FileSystem when required. FileSystem.list()
    had always returned absolute paths, even when the target directory was supplied as a relative
    path.
  • Fix: Don't crash when reading into an empty array using FileHandle on Kotlin/Native.
  • Upgrade: [Kotlin 1.9.0][kotlin_1_9_0].

v3.4.0

2023-07-07

  • New: Adapt a Java NIO FileSystem (java.nio.file.FileSystem) as an Okio FileSystem using
    fileSystem.asOkioFileSystem().
  • New: Adapt Android’s AssetManager as an Okio FileSystem using AssetFileSystem. This is in the
    new okio-assetfilesystem module. Android applications should prefer this over
    FileSystem.RESOURCES as it’s faster to load.
  • Fix: Don't crash decoding GZIP files when the optional extra data (XLEN) is 32 KiB or larger.
  • Fix: Resolve symlinks in FakeFileSystem.canonicalize().
  • Fix: Report the correct createdAtMillis in NodeJsFileSystem file metadata. We were
    incorrectly using ctimeMs, where c means changed, not created.
  • Fix: UnsafeCursor is now Closeable.

v3.3.0

2023-01-07

  • Fix: Don't leak resources when use {} is used with a non-local return. We introduced this
    performance and stability bug by not considering that non-local returns execute neither the
    return nor catch control flows.
  • Fix: Use a sealed interface for BufferedSink and BufferedSource. These were never intended
    for end-users to implement, and we're happy that Kotlin now allows us to express that in our API.
  • New: Change internal locks from synchronized to ReentrantLock and Condition. We expect this
    to improve help when using Okio with Java virtual threads ([Project Loom][loom]).
  • Upgrade: [Kotlin 1.8.0][kotlin_1_8_0].

v3.2.0

2022-06-26

  • Fix: Configure the multiplatform artifact (com.squareup.okio:okio:3.x.x) to depend on the
    JVM artifact (com.squareup.okio:okio-jvm:3.x.x) for Maven builds. This should work-around an
    issue where Maven doesn't interpret Gradle metadata.
  • Fix: Change CipherSource and CipherSink to recover if the cipher doesn't support streaming.
    This should work around a crash with AES/GCM ciphers on Android.
  • New: Enable compatibility with non-hierarchical projects.

v3.1.0

2022-04-19

  • Upgrade: [Kotlin 1.6.20][kotlin_1_6_20].
  • New: Support [Hierarchical project structure][hierarchical_projects]. If you're using Okio in a
    multiplatform project please upgrade your project to Kotlin 1.6.20 (or newer) to take advantage
    of this. With hierarchical projects it's easier to use properties like FileSystem.SYSTEM that
    are available on most Okio platforms but not all of them.
  • New: ForwardingSource is now available on all platforms.
  • New: The watchosX64 platform is now supported.
  • Fix: Don't crash in `NSData.toByteString()' when the input is empty.
  • Fix: Support empty ZIP files in FileSystem.openZip().
  • Fix: Throw in canonicalize() of ZIP file systems if the path doesn't exist.
  • Fix: Don't require ZIP files start with a local file header.
  • New: okio.ProtocolException is a new exception type for multiplatform users. (It is aliased to
    java.net.ProtocolException on JVM platforms).

v3.0.0

2021-10-28

This is the first stable release of Okio 3.x. This release is strongly backwards-compatible with
Okio 2.x, and the new major version signifies new capabilities more than it does backwards
incompatibility.

Most users should be able to upgrade from 2.x by just changing the version. If you're using Okio
in a Kotlin Multiplatform project, you'll need to drop the -multiplatform suffix in your Gradle
dependencies.

  • New: Remove @ExperimentalFileSystem. This annotation is no longer necessary as the file system
    is no longer experimental!

  • New: Path no longer aggressively normalizes .. segments. Use Path.normalize() to apply these
    based on the content of the path, or FileSystem.canonicalize() to do it honoring any symlinks
    on a particular file system.

  • New: Publish a [bill of materials (BOM)][bom] for Okio. Depend on this from Gradle or Maven to
    keep all of your Okio artifacts on the same version, even if they're declared via transitive
    dependencies. You can even omit versions when declaring other Okio dependencies.

    dependencies {
       api(platform("com.squareup.okio:okio-bom:3.0.0"))
       api("com.squareup.okio:okio")                // No version!
       api("com.squareup.okio:okio-fakefilesystem") // No version!
    }
  • New: FileSystem.delete() silently succeeds when deleting a file that doesn't exist. Use
    the new mustExist parameter to trigger an exception instead.

  • New: FileSystem.createDirectories() silently succeeds when creating a directory that already
    exists. Use the new mustCreate parameter to trigger an exception instead.

  • New: FileSystem offers Java-language overloads where appropriate. Previously functions that
    had default parameters were potentially awkward to invoke from Java.

  • New: Timeout.intersectWith() returns a value instead of Unit. This is a binary-incompatible
    change. We expect that this public API is very rarely used outside of Okio itself.

  • Fix: Change BufferedSource.readDecimalLong() to fail if the input value is just -. Previously
    Okio incorrectly returned 0 for this.

v2.10.0

2021-01-07

  • New: Support Windows (mingwX64) in multiplatform.
  • New: Support watchOS (watchosArm32, watchosArm64, watchosX86) in multiplatform.
  • New: Support HashingSource, HashingSink, buffer hash functions, and UnsafeCursor on non-JVM
    platforms. Previously these were all JVM-only.
  • New: Implement Closeable on Sink and Source on non-JVM platforms. Okio now includes a
    multiplatform okio.Closeable interface and corresponding use {} extension. Closing resources
    when you're done with them shouldn't be JVM-only!
  • New: Sink.hashingSink and Source.hashingSource functions that accept
    java.security.MessageDigest and javax.crypto.Mac instances. Use these when your hash function
    isn't built-in.
  • Fix: Don't crash with a ShortBufferException in CipherSink and CipherSource on Android.
    (Android may throw a ShortBufferException even if the buffer is not too short. We now
    avoid this problem!)
  • Upgrade: [Kotlin 1.4.20][kotlin_1_4_20].

v2.9.0

2020-10-04

  • Fix: Don't corrupt the Buffer when writing a slice of a segmented ByteString. We had a severe
    bug where ByteString instances created with snapshot() and readByteString() incorrectly
    adjusted the buffer's size by their full length, not the length of the slice. This would have
    caused buffer reads to crash! We do not believe data was silently corrupted.
  • New: CipherSink and CipherSource. Use these with javax.crypto.Cipher to encrypt and decrypt
    streams of data. This is a low-level encryption API; most applications should use higher-level
    APIs like TLS when available.
  • New: Promote hash functions md5, sha1(), sha512(), and sha256() to common Kotlin. These
    are currently only available on ByteString, multiplatform support for HashingSource,
    HashingSink, and Buffer should come in a follow-up release. We wrote and optimized our own
    implementations of these hash functions in Kotlin. On JVM and Android platforms Okio still uses
    the platform's built-in hash functions.
  • New: Support OSGi metadata.
  • Upgrade: [Kotlin 1.4.10][kotlin_1_4_10].

Configuration

📅 Schedule: Branch creation - "after 10pm" in timezone Europe/Prague, Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added the type: dependency-upgrade Upgrade a dependency label Feb 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: dependency-upgrade Upgrade a dependency

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants

Comments