Skip to content

Releases: cashapp/zipline

1.5.1

14 Nov 22:15
Compare
Choose a tag to compare
  • Fix: remove the Zipline version from the klib metadata in the zipline-cinterop-quickjs
    artifact. This restores the behavior from 1.4.0 to work around [KT-62515].

1.5.0

02 Nov 16:53
Compare
Choose a tag to compare
  • New: Zipline.eventListener can be used to get the EventListener from a Zipline instance.
  • Upgrade: Kotlin 1.9.20

1.4.0

01 Nov 04:56
Compare
Choose a tag to compare
  • New: EventListener.Factory can be used to scope events to a particular Zipline instance.

  • New: Support arbitrary metadata in the ZiplineManifest. This new Map<String, String> can be
    produced in your build.gradle.kts file, and consumed from the ZiplineManifest instance.

    zipline {
      ...
      metadata.put("build_timestamp", "2023-10-25T12:00:00T")
    }
  • Upgrade: OkHttp 4.12.0

  • Upgrade: Okio 3.6.0

1.3.0

20 Sep 20:46
Compare
Choose a tag to compare
  • Fix: Configure a 6 MiB stack size by default. Previously Zipline didn't enforce any stack
    size limit, which resulted in difficult-to-diagnose crashes when the stack size was exceeded.
    Callers must manually ensure their calling stack sizes are larger than 6 MiB!
  • Fix: Always include type parameters for nested parameterized types.
  • Fix: Don't double-free when calling NSData.dataWithBytesNoCopy. We had a bug where we were
    double-freeing memory in the Kotlin/Native EcdsaP256 signature verifier.
  • Upgrade: [Kotlin Serialization 1.6.0][kotlin_serialization_1_6_0].

1.2.0

09 Aug 19:20
Compare
Choose a tag to compare

1.1.0

30 Jun 20:38
Compare
Choose a tag to compare
  • New: Gradle tasks ziplineApiCheck and ziplineApiDump. These tasks work like Kotlin’s
    Binary compatibility validator:
    the Dump task writes your public API to a file (api/zipline-api.toml) and the the Check
    task confirms that your public API matches that file. These two tasks expose the IDs Zipline uses
    for functions. The :ziplineApiCheck task configures itself a dependency of Gradle's :check
    task: you'll need to run :ziplineApiDump when applying this update and each time your public
    API changes going forward.
  • Upgrade: [Kotlin 1.8.21][kotlin_1_8_21].
  • Upgrade: [kotlinx.coroutines 1.7.2][kotlinx_coroutines_1_7_2].
  • Upgrade: [Kotlin Serialization 1.5.1][kotlin_serialization_1_5_1].

1.0.0

13 Jun 01:50
Compare
Choose a tag to compare

This is Zipline's initial stable release.

With this release we commit to compatibility between host and guest programs. In particular, host
applications built with any Zipline 1.x release will be able to execute guest applications built
with any other 1.y release. (Application developers must write compatible interfaces to take
advantage of this!)

The following are now stable:

  • The manifest file format (manifest.zipline.json)
  • The library file format and bytecode within (my-library.zipline)
  • The host-guest call protocol
  • The internal host-guest APIs for async calls, console logging, and leak notifications

As we add features and performance improvements to future releases, we will test compatibility
with 1.0.

We expect to someday do ‘Zipline 2.0’ that uses WebAssembly. When that happens we’ll make sure the
2.x tools can also produce programs that run on 1.x hosts.

  • Fix: Don't allow services with the different generic parameters to collide in the cache. We had
    a severe bug where two services would share serializers for unrelated types. This would typically
    result in a ClassCastException at runtime.

0.9.20

01 Jun 19:57
Compare
Choose a tag to compare

We've changed this project to focus exclusively on executing Kotlin/JS libraries.

We plan to drop support for executing arbitrary JavaScript code. If you've been using either
QuickJS Java (this project's name until September 2021) or Duktape Android (this project's name
until June 2021), those projects remain as git branches but will not receive further updates.

The project's new Maven coordinates are app.cash.zipline:zipline.

  • Downgrade: [Kotlin 1.8.20][kotlin_1_8_20]. (Our users aren't ready for 1.8.21 yet.)
  • Downgrade: [Kotlin Serialization 1.5.0][kotlin_serialization_1_5_1]. (Requires Kotlin 1.8.21.)

0.9.19

01 Jun 15:37
Compare
Choose a tag to compare

We've changed this project to focus exclusively on executing Kotlin/JS libraries.

We plan to drop support for executing arbitrary JavaScript code. If you've been using either
QuickJS Java (this project's name until September 2021) or Duktape Android (this project's name
until June 2021), those projects remain as git branches but will not receive further updates.

The project's new Maven coordinates are app.cash.zipline:zipline.

  • Breaking: Change the calling convention between host and guest code to identify functions by IDs
    instead of by their signatures. We renamed ZiplineFunction.name to signature and added a new
    id property.
  • Breaking: Change the built-in services to share a single identifier rather than bridging them
    separately based on feature (console, event_loop, event_listener.)
  • Breaking: Move ZiplineManifest from app.cash.zipline.loader to app.cash.zipline. It was
    also promoted to the main zipline artifact.
  • New: ZiplineService.targetType can be used to inspect the function declarations on the peer's
    version of a service.
  • New: EventListener.manifestVerified() signals successful signature checks of the manifest.
  • New: Convert zipline-profiler into a multiplatform artifact.
  • Upgrade: [Kotlin 1.8.21][kotlin_1_8_21].
  • Upgrade: [kotlinx.coroutines 1.7.1][kotlinx_coroutines_1_7_1].
  • Upgrade: [Kotlin Serialization 1.5.1][kotlin_serialization_1_5_1].

0.9.17

16 Mar 02:25
Compare
Choose a tag to compare

We've changed this project to focus exclusively on executing Kotlin/JS libraries.

We plan to drop support for executing arbitrary JavaScript code. If you've been using either
QuickJS Java (this project's name until September 2021) or Duktape Android (this project's name
until June 2021), those projects remain as git branches but will not receive further updates.

The project's new Maven coordinates are app.cash.zipline:zipline.

  • Upgrade: [Kotlin 1.8.10][kotlin_1_8_10].
  • Upgrade: [Kotlin Serialization 1.5.0][kotlin_serialization_1_5_0].
  • Fix: Support function overloads in ZiplineService interfaces.
  • Fix: Workaround a crash in Kotlin/JS incremental compilation. We were using a constant string in
    a js(...) literal.