Skip to content

Replace LZ4 compression with Zstandard (next major): dotnet/android tools/assembly-store-reader-mk2 @ 2e30614 #5346

Description

@github-actions

TLDR;

Microsoft are finally replacing the LZ4 compression used for Assembly Stores Android:

Switches the per-assembly AssemblyStore compression from LZ4 (dotnet/lz4 + the K4os managed wrapper) to Zstandard, using the ZSTD_* entry points already exported by libSystem.IO.Compression.Native in the .NET runtime pack. This drops an external dependency and trades for a better compression ratio.

Eventually, this will be good news as we'll be able to drop this dependency:

<ItemGroup>
<PackageReference Include="K4os.Compression.LZ4" Version="1.3.6" />
</ItemGroup>

In the near term, we'll be able to conditionally drop/replace this for recent enough versions of .NET (likely .NET 11 or later). We'll need to do this before shipping the next major version of the Sentry SDK for .NET.

Upstream Change Detected

The code at dotnet/android/tools/assembly-store-reader-mk2 has a new commit since our last review.

Latest commit 2e30614
Path history View history
Tracking Code dotnet/android tools/assembly-store-reader-mk2 @ 2e30614

Our vendored copy lives in src/Sentry.Android.AssemblyReader/. We modified the upstream code significantly,
so a direct merge is unlikely to be appropriate — but the commit above may reveal logic
changes worth porting.

What to do

  1. Review the upstream commit and path history.
  2. If no action is needed, close this issue with a note explaining why.
  3. If changes should be ported, create a follow-up task and close this issue once the work is tracked.

Automatically opened by the Watch Upstream Changes workflow.

Metadata

Metadata

Assignees

No one assigned

    Labels

    .NETPull requests that update .net codeNext MajorChanges scheduled for the next Major release.Taskupstream-watchUpstream vendored code has changed — review required

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions