Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
724ad85
Add zstd lib files to the repo
rzikm Sep 3, 2025
68c7505
Link zstd to System.IO.Compression.Native
rzikm Sep 3, 2025
15ee2fe
Skeleton implementation
rzikm Sep 4, 2025
9b9ef3f
Export native zstd symbols
rzikm Sep 8, 2025
065c073
ZDictionary creation
rzikm Sep 8, 2025
69bc9ac
ZStandardEncoder
rzikm Sep 8, 2025
694be0c
ZStandardDecoder
rzikm Sep 8, 2025
e20b035
Roundtrip tests
rzikm Sep 8, 2025
bd76d85
Dictionary lifetime management
rzikm Sep 8, 2025
2417c7c
Fix test failures
rzikm Sep 9, 2025
1220608
minor fix
rzikm Sep 9, 2025
ff0e08f
Fix unit tests
rzikm Sep 10, 2025
f55605b
Minor changes
rzikm Sep 10, 2025
e7227d4
move strings to resx
rzikm Sep 11, 2025
8d9306b
Change capitalization to Zstandard
rzikm Sep 22, 2025
9d8dc42
Add support for Zstandard to System.IO.Compression
rzikm Sep 22, 2025
f9faf6b
Add ctor overloads
rzikm Sep 22, 2025
48d43b3
Fix build on Linux
rzikm Sep 24, 2025
d3b1a0a
Fix runtime build on Windows
rzikm Sep 24, 2025
1689460
Fix build on tvos
rzikm Sep 25, 2025
97b4fd0
Fix AoT builds
rzikm Sep 26, 2025
98081be
Fix Android builds
rzikm Sep 26, 2025
4787d0d
More flexible options
rzikm Sep 30, 2025
28c2125
Add ReferencePrefix
rzikm Sep 30, 2025
66f619f
Fix tests
rzikm Sep 30, 2025
322dbac
Add finalizer test
rzikm Sep 30, 2025
e90a175
fixup! Add ReferencePrefix
rzikm Sep 30, 2025
ca4ebd7
fixup! More flexible options
rzikm Sep 30, 2025
fb77336
Add ability to specify max window during decompression
rzikm Sep 30, 2025
b1b2469
Minor changes
rzikm Oct 3, 2025
cfa1884
Use ZSTD_decompressBound
rzikm Oct 3, 2025
46a464c
Update src/native/external/zstd-version.txt
rzikm Oct 6, 2025
bfb499c
fixup! Use ZSTD_decompressBound
rzikm Nov 5, 2025
144dfb2
Feedback from API review
rzikm Nov 5, 2025
beba29f
Update runtime-assets dependencies
rzikm Nov 5, 2025
47537ac
Fix build
rzikm Nov 12, 2025
c74a432
Share memory between CDict and DDict
rzikm Nov 12, 2025
6a16f3a
Use specified window in compress
rzikm Nov 12, 2025
8041429
Deduplication
rzikm Nov 12, 2025
2fab299
Nullcheck
rzikm Nov 12, 2025
61c180a
Fix type
rzikm Nov 12, 2025
7bb75f1
TestGetMaxCompressedSize
rzikm Nov 12, 2025
7c352af
SetSourceSize tests
rzikm Nov 13, 2025
12ad8a3
Checkpoint for SetPrefix
rzikm Nov 13, 2025
7e5ec0b
Prefix tests
rzikm Nov 13, 2025
92fed5e
Decoder.SetPrefix
rzikm Nov 13, 2025
3ac2585
Comment changes
rzikm Nov 13, 2025
a8d11ca
Test compression options
rzikm Nov 13, 2025
23fb7ee
Code style
rzikm Nov 13, 2025
09ded3c
More tests
rzikm Nov 13, 2025
532ca91
Dictionary training tests
rzikm Nov 13, 2025
a2bc5cc
test append checksum
rzikm Nov 13, 2025
e1b29f5
Fix linux build
rzikm Nov 13, 2025
c8fa1e3
Remove trailing whitespace
rzikm Nov 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions THIRD-PARTY-NOTICES.TXT
Original file line number Diff line number Diff line change
Expand Up @@ -1167,6 +1167,41 @@ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWIS
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

License notice for zstd
-----------------------

https://github.com/facebook/zstd/blob/dev/LICENSE

BSD License

For Zstandard software
Copyright (c) Meta Platforms, Inc. and affiliates. All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

* Neither the name Facebook, nor Meta, nor the names of its contributors may
be used to endorse or promote products derived from this software without
specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

License notice for fmtlib/fmt
-------------------------------

Expand Down
30 changes: 15 additions & 15 deletions eng/Version.Details.props
Original file line number Diff line number Diff line change
Expand Up @@ -80,21 +80,21 @@ This file should be imported by eng/Versions.props
<SystemReflectionMetadataLoadContextPackageVersion>10.0.0-rc.1.25528.108</SystemReflectionMetadataLoadContextPackageVersion>
<SystemTextJsonPackageVersion>10.0.0-rc.1.25528.108</SystemTextJsonPackageVersion>
<!-- dotnet/runtime-assets dependencies -->
<MicrosoftDotNetCilStripSourcesPackageVersion>11.0.0-beta.25553.1</MicrosoftDotNetCilStripSourcesPackageVersion>
<MicrosoftNETHostModelTestDataPackageVersion>11.0.0-beta.25553.1</MicrosoftNETHostModelTestDataPackageVersion>
<SystemComponentModelTypeConverterTestDataPackageVersion>11.0.0-beta.25553.1</SystemComponentModelTypeConverterTestDataPackageVersion>
<SystemDataCommonTestDataPackageVersion>11.0.0-beta.25553.1</SystemDataCommonTestDataPackageVersion>
<SystemDrawingCommonTestDataPackageVersion>11.0.0-beta.25553.1</SystemDrawingCommonTestDataPackageVersion>
<SystemFormatsTarTestDataPackageVersion>11.0.0-beta.25553.1</SystemFormatsTarTestDataPackageVersion>
<SystemIOCompressionTestDataPackageVersion>11.0.0-beta.25553.1</SystemIOCompressionTestDataPackageVersion>
<SystemIOPackagingTestDataPackageVersion>11.0.0-beta.25553.1</SystemIOPackagingTestDataPackageVersion>
<SystemNetTestDataPackageVersion>11.0.0-beta.25553.1</SystemNetTestDataPackageVersion>
<SystemPrivateRuntimeUnicodeDataPackageVersion>11.0.0-beta.25553.1</SystemPrivateRuntimeUnicodeDataPackageVersion>
<SystemRuntimeNumericsTestDataPackageVersion>11.0.0-beta.25553.1</SystemRuntimeNumericsTestDataPackageVersion>
<SystemRuntimeTimeZoneDataPackageVersion>11.0.0-beta.25553.1</SystemRuntimeTimeZoneDataPackageVersion>
<SystemSecurityCryptographyX509CertificatesTestDataPackageVersion>11.0.0-beta.25553.1</SystemSecurityCryptographyX509CertificatesTestDataPackageVersion>
<SystemTextRegularExpressionsTestDataPackageVersion>11.0.0-beta.25553.1</SystemTextRegularExpressionsTestDataPackageVersion>
<SystemWindowsExtensionsTestDataPackageVersion>11.0.0-beta.25553.1</SystemWindowsExtensionsTestDataPackageVersion>
<MicrosoftDotNetCilStripSourcesPackageVersion>11.0.0-beta.25555.1</MicrosoftDotNetCilStripSourcesPackageVersion>
<MicrosoftNETHostModelTestDataPackageVersion>11.0.0-beta.25555.1</MicrosoftNETHostModelTestDataPackageVersion>
<SystemComponentModelTypeConverterTestDataPackageVersion>11.0.0-beta.25555.1</SystemComponentModelTypeConverterTestDataPackageVersion>
<SystemDataCommonTestDataPackageVersion>11.0.0-beta.25555.1</SystemDataCommonTestDataPackageVersion>
<SystemDrawingCommonTestDataPackageVersion>11.0.0-beta.25555.1</SystemDrawingCommonTestDataPackageVersion>
<SystemFormatsTarTestDataPackageVersion>11.0.0-beta.25555.1</SystemFormatsTarTestDataPackageVersion>
<SystemIOCompressionTestDataPackageVersion>11.0.0-beta.25555.1</SystemIOCompressionTestDataPackageVersion>
<SystemIOPackagingTestDataPackageVersion>11.0.0-beta.25555.1</SystemIOPackagingTestDataPackageVersion>
<SystemNetTestDataPackageVersion>11.0.0-beta.25555.1</SystemNetTestDataPackageVersion>
<SystemPrivateRuntimeUnicodeDataPackageVersion>11.0.0-beta.25555.1</SystemPrivateRuntimeUnicodeDataPackageVersion>
<SystemRuntimeNumericsTestDataPackageVersion>11.0.0-beta.25555.1</SystemRuntimeNumericsTestDataPackageVersion>
<SystemRuntimeTimeZoneDataPackageVersion>11.0.0-beta.25555.1</SystemRuntimeTimeZoneDataPackageVersion>
<SystemSecurityCryptographyX509CertificatesTestDataPackageVersion>11.0.0-beta.25555.1</SystemSecurityCryptographyX509CertificatesTestDataPackageVersion>
<SystemTextRegularExpressionsTestDataPackageVersion>11.0.0-beta.25555.1</SystemTextRegularExpressionsTestDataPackageVersion>
<SystemWindowsExtensionsTestDataPackageVersion>11.0.0-beta.25555.1</SystemWindowsExtensionsTestDataPackageVersion>
<!-- dotnet/xharness dependencies -->
<MicrosoftDotNetXHarnessCLIPackageVersion>10.0.0-prerelease.25506.2</MicrosoftDotNetXHarnessCLIPackageVersion>
<MicrosoftDotNetXHarnessTestRunnersCommonPackageVersion>10.0.0-prerelease.25506.2</MicrosoftDotNetXHarnessTestRunnersCommonPackageVersion>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ The .NET Foundation licenses this file to you under the MIT license.
<UseSystemZlib Condition="'$(UseSystemZlib)' == '' and !Exists('$(IlcFrameworkNativePath)libz.a')">true</UseSystemZlib>
<!-- Use libbrotlicommon.a as the sentinel for the three brotli libs. -->
<UseSystemBrotli Condition="'$(UseSystemBrotli)' == '' and !Exists('$(IlcFrameworkNativePath)libbrotlicommon.a')">true</UseSystemBrotli>
<UseSystemZstd Condition="'$(UseSystemZstd)' == '' and !Exists('$(IlcFrameworkNativePath)libzstd.a')">true</UseSystemZstd>

<FullRuntimeName>libRuntime.WorkstationGC</FullRuntimeName>
<FullRuntimeName Condition="'$(ServerGarbageCollection)' == 'true' or '$(IlcLinkServerGC)' == 'true'">libRuntime.ServerGC</FullRuntimeName>
Expand Down Expand Up @@ -178,6 +179,11 @@ The .NET Foundation licenses this file to you under the MIT license.
<NativeLibrary Include="$(IlcFrameworkNativePath)libbrotlicommon.a" />
</ItemGroup>

<ItemGroup>
<!-- zstd must be added after System.IO.Compression.Native, order matters. -->
<NativeLibrary Condition="'$(UseSystemZstd)' != 'true'" Include="$(IlcFrameworkNativePath)libzstd.a" />
</ItemGroup>

<ItemGroup Condition="'$(StaticICULinking)' == 'true' and '$(NativeLib)' != 'Static' and '$(InvariantGlobalization)' != 'true'">
<NativeLibrary Include="$(IntermediateOutputPath)libs/System.Globalization.Native/build/libSystem.Globalization.Native.a" />
<DirectPInvoke Include="System.Globalization.Native" />
Expand Down Expand Up @@ -217,6 +223,7 @@ The .NET Foundation licenses this file to you under the MIT license.
<NativeSystemLibrary Include="swiftFoundation" Condition="'$(_IsApplePlatform)' == 'true'" />
<NativeSystemLibrary Include="z" Condition="'$(UseSystemZlib)' == 'true'" />
<NativeSystemLibrary Include="brotlienc;brotlidec;brotlicommon" Condition="'$(UseSystemBrotli)' == 'true'" />
<NativeSystemLibrary Include="zstd" Condition="'$(UseSystemZstd)' == 'true'" />
<NativeSystemLibrary Include="rt" Condition="'$(_IsApplePlatform)' != 'true' and '$(_linuxLibcFlavor)' != 'bionic'" />
<NativeSystemLibrary Include="log" Condition="'$(_linuxLibcFlavor)' == 'bionic'" />
<NativeSystemLibrary Include="icucore" Condition="'$(_IsApplePlatform)' == 'true'" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ The .NET Foundation licenses this file to you under the MIT license.
<NativeLibrary Include="$(IlcSdkPath)brotlicommon$(LibFileExt)" />
<NativeLibrary Include="$(IlcSdkPath)brotlienc$(LibFileExt)" />
<NativeLibrary Include="$(IlcSdkPath)brotlidec$(LibFileExt)" />
<NativeLibrary Include="$(IlcSdkPath)zstd_static$(LibFileExt)" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,9 @@
<PlatformManifestFileEntry Include="brotlienc.lib" IsNative="true" />
<PlatformManifestFileEntry Include="brotlidec.lib" IsNative="true" />
<PlatformManifestFileEntry Include="brotlicommon.lib" IsNative="true" />
<!-- zstd-specific files -->
<PlatformManifestFileEntry Include="libzstd.a" IsNative="true" />
<PlatformManifestFileEntry Include="zstd_static.lib" IsNative="true" />
</ItemGroup>

<ItemGroup>
Expand Down
Loading
Loading