Move Zstandard APIs from System.IO.Compression.Zstandard to System.IO.Compression - #124634

Merged
rzikm merged 2 commits into
dotnet:mainfrom
rzikm:move-zstandard-to-compression
Feb 24, 2026
Merged

Move Zstandard APIs from System.IO.Compression.Zstandard to System.IO.Compression#124634
rzikm merged 2 commits into
dotnet:mainfrom
rzikm:move-zstandard-to-compression

Conversation

@rzikm

@rzikmrzikm commented Feb 20, 2026

Copy link
Copy Markdown
Member

There is no real benefit from having the APIs in separate assembly because:

….Compression
Move Zstandard compression/decompression APIs from the separate
System.IO.Compression.Zstandard assembly into the main
System.IO.Compression assembly for better organization.
Changes:
- Move source files to src/System/IO/Compression/Zstandard/ subdirectory
- Move test files to tests/Zstandard/ subdirectory
- Add PNSE stubs for browser/wasi platforms
- Update ref API with [UnsupportedOSPlatform] attributes
- Merge resource strings into System.IO.Compression Strings.resx
- Remove System.IO.Compression.Zstandard project reference from System.Net.Http
- Remove System.IO.Compression.Zstandard from NetCoreAppLibrary.props and sfx.slnx
- Delete the old System.IO.Compression.Zstandard directory
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @karelz, @dotnet/area-system-io-compression
See info in area-owners.md if you want to be subscribed.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR consolidates Zstandard compression APIs into the main System.IO.Compression library, removing the separate System.IO.Compression.Zstandard assembly and updating build/test infrastructure accordingly.

Changes:

  • Move Zstandard implementation and tests under System.IO.Compression (including ref API surface updates).
  • Add browser/WASI PlatformNotSupportedException stubs while keeping full implementations on Windows/Unix TFMs.
  • Remove the old System.IO.Compression.Zstandard project artifacts and references (solutions, props, project references).

Reviewed changes

Copilot reviewed 23 out of 31 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
src/libraries/sfx.slnxRemoves System.IO.Compression.Zstandard ref project from the libraries solution.
src/libraries/System.Net.Http/src/System.Net.Http.csprojDrops project reference to the removed System.IO.Compression.Zstandard project.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardTestUtils.csAdds shared helpers for Zstandard tests in the consolidated test project.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardEncoderDecoderTests.csAdds encoder/decoder coverage to System.IO.Compression tests.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardDictionaryTests.csAdds dictionary creation/training tests under System.IO.Compression.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardCompressionOptionsTests.csAdds validation tests for ZstandardCompressionOptions.
src/libraries/System.IO.Compression/tests/Zstandard/CompressionStreamUnitTests.Zstandard.csAdds ZstandardStream coverage integrated with existing stream test base.
src/libraries/System.IO.Compression/tests/System.IO.Compression.Tests.csprojIntegrates Zstandard test sources conditionally (excluding browser/WASI).
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardUtils.csAdds shared internal helpers for Zstandard implementation.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.csAdds platform attributes on ZstandardStream.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.Decompress.csAdds decompression-side stream implementation under the consolidated assembly.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.Compress.csAdds compression-side stream implementation under the consolidated assembly.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardEncoder.csAdds platform attributes on ZstandardEncoder.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardDictionary.csAdds platform attributes on ZstandardDictionary.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardDecoder.csAdds platform attributes on ZstandardDecoder.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardCompressionOptions.csAdds platform attributes on ZstandardCompressionOptions.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/Zstandard.PlatformNotSupported.csAdds browser/WASI stubs throwing PlatformNotSupportedException.
src/libraries/System.IO.Compression/src/System.IO.Compression.csprojMulti-target integration for Zstandard sources + stubs under System.IO.Compression.
src/libraries/System.IO.Compression/src/Resources/Strings.resxMerges Zstandard resource strings into System.IO.Compression resources.
src/libraries/System.IO.Compression/ref/System.IO.Compression.csAdds Zstandard APIs to the System.IO.Compression reference surface with platform attributes.
src/libraries/System.IO.Compression/README.mdUpdates README to reflect Zstandard support in System.IO.Compression.
src/libraries/System.IO.Compression/Directory.Build.propsRemoves BOM/normalizes file header.
src/libraries/System.IO.Compression.Zstandard/tests/System.IO.Compression.Zstandard.Tests.csprojDeletes old Zstandard test project (now integrated into System.IO.Compression tests).
src/libraries/System.IO.Compression.Zstandard/src/System.IO.Compression.Zstandard.csprojDeletes old Zstandard implementation project (now merged into System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/src/Resources/Strings.resxDeletes old resource file (strings moved to System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/ref/System.IO.Compression.Zstandard.csprojDeletes old ref project.
src/libraries/System.IO.Compression.Zstandard/ref/System.IO.Compression.Zstandard.csDeletes old ref surface file (moved into System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/System.IO.Compression.Zstandard.slnxDeletes old solution for the removed library.
src/libraries/System.IO.Compression.Zstandard/README.mdDeletes old library README (functionality now documented under System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/Directory.Build.propsDeletes old build props (no longer needed after consolidation).
src/libraries/NetCoreAppLibrary.propsRemoves System.IO.Compression.Zstandard from the NetCoreApp library list.

Comment threadsrc/libraries/System.IO.Compression/src/System.IO.Compression.csproj Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings February 23, 2026 07:34

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 23 out of 31 changed files in this pull request and generated 1 comment.

Comment threadsrc/libraries/System.IO.Compression/Directory.Build.props

@iremyuxiremyux left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@rzikm
rzikm merged commit 904ecbb into dotnet:mainFeb 24, 2026
94 of 96 checks passed
iremyux pushed a commit to iremyux/dotnet-runtime that referenced this pull request Mar 2, 2026
….Compression (dotnet#124634)
There is no real benefit from having the APIs in separate assembly
because:
- the Managed code size is rather small
- it P/Invokes System.IO.Compression.Native just like
System.IO.Compression managed assembly does
- It would lead to circular dependency if we decide to implement
dotnet#123532
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 27, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@rzikm@iremyux
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Move Zstandard APIs from System.IO.Compression.Zstandard to System.IO.Compression - #124634

Merged
rzikm merged 2 commits into
dotnet:mainfrom
rzikm:move-zstandard-to-compression
Feb 24, 2026
Merged

Move Zstandard APIs from System.IO.Compression.Zstandard to System.IO.Compression#124634
rzikm merged 2 commits into
dotnet:mainfrom
rzikm:move-zstandard-to-compression

Conversation

@rzikm

@rzikmrzikm commented Feb 20, 2026

Copy link
Copy Markdown
Member

There is no real benefit from having the APIs in separate assembly because:

….Compression
Move Zstandard compression/decompression APIs from the separate
System.IO.Compression.Zstandard assembly into the main
System.IO.Compression assembly for better organization.
Changes:
- Move source files to src/System/IO/Compression/Zstandard/ subdirectory
- Move test files to tests/Zstandard/ subdirectory
- Add PNSE stubs for browser/wasi platforms
- Update ref API with [UnsupportedOSPlatform] attributes
- Merge resource strings into System.IO.Compression Strings.resx
- Remove System.IO.Compression.Zstandard project reference from System.Net.Http
- Remove System.IO.Compression.Zstandard from NetCoreAppLibrary.props and sfx.slnx
- Delete the old System.IO.Compression.Zstandard directory
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @karelz, @dotnet/area-system-io-compression
See info in area-owners.md if you want to be subscribed.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR consolidates Zstandard compression APIs into the main System.IO.Compression library, removing the separate System.IO.Compression.Zstandard assembly and updating build/test infrastructure accordingly.

Changes:

  • Move Zstandard implementation and tests under System.IO.Compression (including ref API surface updates).
  • Add browser/WASI PlatformNotSupportedException stubs while keeping full implementations on Windows/Unix TFMs.
  • Remove the old System.IO.Compression.Zstandard project artifacts and references (solutions, props, project references).

Reviewed changes

Copilot reviewed 23 out of 31 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
src/libraries/sfx.slnxRemoves System.IO.Compression.Zstandard ref project from the libraries solution.
src/libraries/System.Net.Http/src/System.Net.Http.csprojDrops project reference to the removed System.IO.Compression.Zstandard project.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardTestUtils.csAdds shared helpers for Zstandard tests in the consolidated test project.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardEncoderDecoderTests.csAdds encoder/decoder coverage to System.IO.Compression tests.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardDictionaryTests.csAdds dictionary creation/training tests under System.IO.Compression.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardCompressionOptionsTests.csAdds validation tests for ZstandardCompressionOptions.
src/libraries/System.IO.Compression/tests/Zstandard/CompressionStreamUnitTests.Zstandard.csAdds ZstandardStream coverage integrated with existing stream test base.
src/libraries/System.IO.Compression/tests/System.IO.Compression.Tests.csprojIntegrates Zstandard test sources conditionally (excluding browser/WASI).
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardUtils.csAdds shared internal helpers for Zstandard implementation.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.csAdds platform attributes on ZstandardStream.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.Decompress.csAdds decompression-side stream implementation under the consolidated assembly.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.Compress.csAdds compression-side stream implementation under the consolidated assembly.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardEncoder.csAdds platform attributes on ZstandardEncoder.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardDictionary.csAdds platform attributes on ZstandardDictionary.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardDecoder.csAdds platform attributes on ZstandardDecoder.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardCompressionOptions.csAdds platform attributes on ZstandardCompressionOptions.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/Zstandard.PlatformNotSupported.csAdds browser/WASI stubs throwing PlatformNotSupportedException.
src/libraries/System.IO.Compression/src/System.IO.Compression.csprojMulti-target integration for Zstandard sources + stubs under System.IO.Compression.
src/libraries/System.IO.Compression/src/Resources/Strings.resxMerges Zstandard resource strings into System.IO.Compression resources.
src/libraries/System.IO.Compression/ref/System.IO.Compression.csAdds Zstandard APIs to the System.IO.Compression reference surface with platform attributes.
src/libraries/System.IO.Compression/README.mdUpdates README to reflect Zstandard support in System.IO.Compression.
src/libraries/System.IO.Compression/Directory.Build.propsRemoves BOM/normalizes file header.
src/libraries/System.IO.Compression.Zstandard/tests/System.IO.Compression.Zstandard.Tests.csprojDeletes old Zstandard test project (now integrated into System.IO.Compression tests).
src/libraries/System.IO.Compression.Zstandard/src/System.IO.Compression.Zstandard.csprojDeletes old Zstandard implementation project (now merged into System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/src/Resources/Strings.resxDeletes old resource file (strings moved to System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/ref/System.IO.Compression.Zstandard.csprojDeletes old ref project.
src/libraries/System.IO.Compression.Zstandard/ref/System.IO.Compression.Zstandard.csDeletes old ref surface file (moved into System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/System.IO.Compression.Zstandard.slnxDeletes old solution for the removed library.
src/libraries/System.IO.Compression.Zstandard/README.mdDeletes old library README (functionality now documented under System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/Directory.Build.propsDeletes old build props (no longer needed after consolidation).
src/libraries/NetCoreAppLibrary.propsRemoves System.IO.Compression.Zstandard from the NetCoreApp library list.

Comment threadsrc/libraries/System.IO.Compression/src/System.IO.Compression.csproj Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings February 23, 2026 07:34

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 23 out of 31 changed files in this pull request and generated 1 comment.

Comment threadsrc/libraries/System.IO.Compression/Directory.Build.props

@iremyuxiremyux left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@rzikm
rzikm merged commit 904ecbb into dotnet:mainFeb 24, 2026
94 of 96 checks passed
iremyux pushed a commit to iremyux/dotnet-runtime that referenced this pull request Mar 2, 2026
….Compression (dotnet#124634)
There is no real benefit from having the APIs in separate assembly
because:
- the Managed code size is rather small
- it P/Invokes System.IO.Compression.Native just like
System.IO.Compression managed assembly does
- It would lead to circular dependency if we decide to implement
dotnet#123532
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 27, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@rzikm@iremyux
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Move Zstandard APIs from System.IO.Compression.Zstandard to System.IO.Compression - #124634

Merged
rzikm merged 2 commits into
dotnet:mainfrom
rzikm:move-zstandard-to-compression
Feb 24, 2026
Merged

Move Zstandard APIs from System.IO.Compression.Zstandard to System.IO.Compression#124634
rzikm merged 2 commits into
dotnet:mainfrom
rzikm:move-zstandard-to-compression

Conversation

@rzikm

@rzikmrzikm commented Feb 20, 2026

Copy link
Copy Markdown
Member

There is no real benefit from having the APIs in separate assembly because:

….Compression
Move Zstandard compression/decompression APIs from the separate
System.IO.Compression.Zstandard assembly into the main
System.IO.Compression assembly for better organization.
Changes:
- Move source files to src/System/IO/Compression/Zstandard/ subdirectory
- Move test files to tests/Zstandard/ subdirectory
- Add PNSE stubs for browser/wasi platforms
- Update ref API with [UnsupportedOSPlatform] attributes
- Merge resource strings into System.IO.Compression Strings.resx
- Remove System.IO.Compression.Zstandard project reference from System.Net.Http
- Remove System.IO.Compression.Zstandard from NetCoreAppLibrary.props and sfx.slnx
- Delete the old System.IO.Compression.Zstandard directory
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @karelz, @dotnet/area-system-io-compression
See info in area-owners.md if you want to be subscribed.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR consolidates Zstandard compression APIs into the main System.IO.Compression library, removing the separate System.IO.Compression.Zstandard assembly and updating build/test infrastructure accordingly.

Changes:

  • Move Zstandard implementation and tests under System.IO.Compression (including ref API surface updates).
  • Add browser/WASI PlatformNotSupportedException stubs while keeping full implementations on Windows/Unix TFMs.
  • Remove the old System.IO.Compression.Zstandard project artifacts and references (solutions, props, project references).

Reviewed changes

Copilot reviewed 23 out of 31 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
src/libraries/sfx.slnxRemoves System.IO.Compression.Zstandard ref project from the libraries solution.
src/libraries/System.Net.Http/src/System.Net.Http.csprojDrops project reference to the removed System.IO.Compression.Zstandard project.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardTestUtils.csAdds shared helpers for Zstandard tests in the consolidated test project.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardEncoderDecoderTests.csAdds encoder/decoder coverage to System.IO.Compression tests.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardDictionaryTests.csAdds dictionary creation/training tests under System.IO.Compression.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardCompressionOptionsTests.csAdds validation tests for ZstandardCompressionOptions.
src/libraries/System.IO.Compression/tests/Zstandard/CompressionStreamUnitTests.Zstandard.csAdds ZstandardStream coverage integrated with existing stream test base.
src/libraries/System.IO.Compression/tests/System.IO.Compression.Tests.csprojIntegrates Zstandard test sources conditionally (excluding browser/WASI).
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardUtils.csAdds shared internal helpers for Zstandard implementation.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.csAdds platform attributes on ZstandardStream.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.Decompress.csAdds decompression-side stream implementation under the consolidated assembly.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.Compress.csAdds compression-side stream implementation under the consolidated assembly.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardEncoder.csAdds platform attributes on ZstandardEncoder.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardDictionary.csAdds platform attributes on ZstandardDictionary.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardDecoder.csAdds platform attributes on ZstandardDecoder.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardCompressionOptions.csAdds platform attributes on ZstandardCompressionOptions.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/Zstandard.PlatformNotSupported.csAdds browser/WASI stubs throwing PlatformNotSupportedException.
src/libraries/System.IO.Compression/src/System.IO.Compression.csprojMulti-target integration for Zstandard sources + stubs under System.IO.Compression.
src/libraries/System.IO.Compression/src/Resources/Strings.resxMerges Zstandard resource strings into System.IO.Compression resources.
src/libraries/System.IO.Compression/ref/System.IO.Compression.csAdds Zstandard APIs to the System.IO.Compression reference surface with platform attributes.
src/libraries/System.IO.Compression/README.mdUpdates README to reflect Zstandard support in System.IO.Compression.
src/libraries/System.IO.Compression/Directory.Build.propsRemoves BOM/normalizes file header.
src/libraries/System.IO.Compression.Zstandard/tests/System.IO.Compression.Zstandard.Tests.csprojDeletes old Zstandard test project (now integrated into System.IO.Compression tests).
src/libraries/System.IO.Compression.Zstandard/src/System.IO.Compression.Zstandard.csprojDeletes old Zstandard implementation project (now merged into System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/src/Resources/Strings.resxDeletes old resource file (strings moved to System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/ref/System.IO.Compression.Zstandard.csprojDeletes old ref project.
src/libraries/System.IO.Compression.Zstandard/ref/System.IO.Compression.Zstandard.csDeletes old ref surface file (moved into System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/System.IO.Compression.Zstandard.slnxDeletes old solution for the removed library.
src/libraries/System.IO.Compression.Zstandard/README.mdDeletes old library README (functionality now documented under System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/Directory.Build.propsDeletes old build props (no longer needed after consolidation).
src/libraries/NetCoreAppLibrary.propsRemoves System.IO.Compression.Zstandard from the NetCoreApp library list.

Comment threadsrc/libraries/System.IO.Compression/src/System.IO.Compression.csproj Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings February 23, 2026 07:34

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 23 out of 31 changed files in this pull request and generated 1 comment.

Comment threadsrc/libraries/System.IO.Compression/Directory.Build.props

@iremyuxiremyux left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@rzikm
rzikm merged commit 904ecbb into dotnet:mainFeb 24, 2026
94 of 96 checks passed
iremyux pushed a commit to iremyux/dotnet-runtime that referenced this pull request Mar 2, 2026
….Compression (dotnet#124634)
There is no real benefit from having the APIs in separate assembly
because:
- the Managed code size is rather small
- it P/Invokes System.IO.Compression.Native just like
System.IO.Compression managed assembly does
- It would lead to circular dependency if we decide to implement
dotnet#123532
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 27, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@rzikm@iremyux
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Move Zstandard APIs from System.IO.Compression.Zstandard to System.IO.Compression - #124634

Merged
rzikm merged 2 commits into
dotnet:mainfrom
rzikm:move-zstandard-to-compression
Feb 24, 2026
Merged

Move Zstandard APIs from System.IO.Compression.Zstandard to System.IO.Compression#124634
rzikm merged 2 commits into
dotnet:mainfrom
rzikm:move-zstandard-to-compression

Conversation

@rzikm

@rzikmrzikm commented Feb 20, 2026

Copy link
Copy Markdown
Member

There is no real benefit from having the APIs in separate assembly because:

….Compression
Move Zstandard compression/decompression APIs from the separate
System.IO.Compression.Zstandard assembly into the main
System.IO.Compression assembly for better organization.
Changes:
- Move source files to src/System/IO/Compression/Zstandard/ subdirectory
- Move test files to tests/Zstandard/ subdirectory
- Add PNSE stubs for browser/wasi platforms
- Update ref API with [UnsupportedOSPlatform] attributes
- Merge resource strings into System.IO.Compression Strings.resx
- Remove System.IO.Compression.Zstandard project reference from System.Net.Http
- Remove System.IO.Compression.Zstandard from NetCoreAppLibrary.props and sfx.slnx
- Delete the old System.IO.Compression.Zstandard directory
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @karelz, @dotnet/area-system-io-compression
See info in area-owners.md if you want to be subscribed.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR consolidates Zstandard compression APIs into the main System.IO.Compression library, removing the separate System.IO.Compression.Zstandard assembly and updating build/test infrastructure accordingly.

Changes:

  • Move Zstandard implementation and tests under System.IO.Compression (including ref API surface updates).
  • Add browser/WASI PlatformNotSupportedException stubs while keeping full implementations on Windows/Unix TFMs.
  • Remove the old System.IO.Compression.Zstandard project artifacts and references (solutions, props, project references).

Reviewed changes

Copilot reviewed 23 out of 31 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
src/libraries/sfx.slnxRemoves System.IO.Compression.Zstandard ref project from the libraries solution.
src/libraries/System.Net.Http/src/System.Net.Http.csprojDrops project reference to the removed System.IO.Compression.Zstandard project.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardTestUtils.csAdds shared helpers for Zstandard tests in the consolidated test project.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardEncoderDecoderTests.csAdds encoder/decoder coverage to System.IO.Compression tests.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardDictionaryTests.csAdds dictionary creation/training tests under System.IO.Compression.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardCompressionOptionsTests.csAdds validation tests for ZstandardCompressionOptions.
src/libraries/System.IO.Compression/tests/Zstandard/CompressionStreamUnitTests.Zstandard.csAdds ZstandardStream coverage integrated with existing stream test base.
src/libraries/System.IO.Compression/tests/System.IO.Compression.Tests.csprojIntegrates Zstandard test sources conditionally (excluding browser/WASI).
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardUtils.csAdds shared internal helpers for Zstandard implementation.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.csAdds platform attributes on ZstandardStream.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.Decompress.csAdds decompression-side stream implementation under the consolidated assembly.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.Compress.csAdds compression-side stream implementation under the consolidated assembly.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardEncoder.csAdds platform attributes on ZstandardEncoder.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardDictionary.csAdds platform attributes on ZstandardDictionary.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardDecoder.csAdds platform attributes on ZstandardDecoder.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardCompressionOptions.csAdds platform attributes on ZstandardCompressionOptions.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/Zstandard.PlatformNotSupported.csAdds browser/WASI stubs throwing PlatformNotSupportedException.
src/libraries/System.IO.Compression/src/System.IO.Compression.csprojMulti-target integration for Zstandard sources + stubs under System.IO.Compression.
src/libraries/System.IO.Compression/src/Resources/Strings.resxMerges Zstandard resource strings into System.IO.Compression resources.
src/libraries/System.IO.Compression/ref/System.IO.Compression.csAdds Zstandard APIs to the System.IO.Compression reference surface with platform attributes.
src/libraries/System.IO.Compression/README.mdUpdates README to reflect Zstandard support in System.IO.Compression.
src/libraries/System.IO.Compression/Directory.Build.propsRemoves BOM/normalizes file header.
src/libraries/System.IO.Compression.Zstandard/tests/System.IO.Compression.Zstandard.Tests.csprojDeletes old Zstandard test project (now integrated into System.IO.Compression tests).
src/libraries/System.IO.Compression.Zstandard/src/System.IO.Compression.Zstandard.csprojDeletes old Zstandard implementation project (now merged into System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/src/Resources/Strings.resxDeletes old resource file (strings moved to System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/ref/System.IO.Compression.Zstandard.csprojDeletes old ref project.
src/libraries/System.IO.Compression.Zstandard/ref/System.IO.Compression.Zstandard.csDeletes old ref surface file (moved into System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/System.IO.Compression.Zstandard.slnxDeletes old solution for the removed library.
src/libraries/System.IO.Compression.Zstandard/README.mdDeletes old library README (functionality now documented under System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/Directory.Build.propsDeletes old build props (no longer needed after consolidation).
src/libraries/NetCoreAppLibrary.propsRemoves System.IO.Compression.Zstandard from the NetCoreApp library list.

Comment threadsrc/libraries/System.IO.Compression/src/System.IO.Compression.csproj Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings February 23, 2026 07:34

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 23 out of 31 changed files in this pull request and generated 1 comment.

Comment threadsrc/libraries/System.IO.Compression/Directory.Build.props

@iremyuxiremyux left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@rzikm
rzikm merged commit 904ecbb into dotnet:mainFeb 24, 2026
94 of 96 checks passed
iremyux pushed a commit to iremyux/dotnet-runtime that referenced this pull request Mar 2, 2026
….Compression (dotnet#124634)
There is no real benefit from having the APIs in separate assembly
because:
- the Managed code size is rather small
- it P/Invokes System.IO.Compression.Native just like
System.IO.Compression managed assembly does
- It would lead to circular dependency if we decide to implement
dotnet#123532
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 27, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@rzikm@iremyux
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Move Zstandard APIs from System.IO.Compression.Zstandard to System.IO.Compression - #124634

Merged
rzikm merged 2 commits into
dotnet:mainfrom
rzikm:move-zstandard-to-compression
Feb 24, 2026
Merged

Move Zstandard APIs from System.IO.Compression.Zstandard to System.IO.Compression#124634
rzikm merged 2 commits into
dotnet:mainfrom
rzikm:move-zstandard-to-compression

Conversation

@rzikm

@rzikmrzikm commented Feb 20, 2026

Copy link
Copy Markdown
Member

There is no real benefit from having the APIs in separate assembly because:

….Compression
Move Zstandard compression/decompression APIs from the separate
System.IO.Compression.Zstandard assembly into the main
System.IO.Compression assembly for better organization.
Changes:
- Move source files to src/System/IO/Compression/Zstandard/ subdirectory
- Move test files to tests/Zstandard/ subdirectory
- Add PNSE stubs for browser/wasi platforms
- Update ref API with [UnsupportedOSPlatform] attributes
- Merge resource strings into System.IO.Compression Strings.resx
- Remove System.IO.Compression.Zstandard project reference from System.Net.Http
- Remove System.IO.Compression.Zstandard from NetCoreAppLibrary.props and sfx.slnx
- Delete the old System.IO.Compression.Zstandard directory
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @karelz, @dotnet/area-system-io-compression
See info in area-owners.md if you want to be subscribed.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR consolidates Zstandard compression APIs into the main System.IO.Compression library, removing the separate System.IO.Compression.Zstandard assembly and updating build/test infrastructure accordingly.

Changes:

  • Move Zstandard implementation and tests under System.IO.Compression (including ref API surface updates).
  • Add browser/WASI PlatformNotSupportedException stubs while keeping full implementations on Windows/Unix TFMs.
  • Remove the old System.IO.Compression.Zstandard project artifacts and references (solutions, props, project references).

Reviewed changes

Copilot reviewed 23 out of 31 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
src/libraries/sfx.slnxRemoves System.IO.Compression.Zstandard ref project from the libraries solution.
src/libraries/System.Net.Http/src/System.Net.Http.csprojDrops project reference to the removed System.IO.Compression.Zstandard project.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardTestUtils.csAdds shared helpers for Zstandard tests in the consolidated test project.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardEncoderDecoderTests.csAdds encoder/decoder coverage to System.IO.Compression tests.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardDictionaryTests.csAdds dictionary creation/training tests under System.IO.Compression.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardCompressionOptionsTests.csAdds validation tests for ZstandardCompressionOptions.
src/libraries/System.IO.Compression/tests/Zstandard/CompressionStreamUnitTests.Zstandard.csAdds ZstandardStream coverage integrated with existing stream test base.
src/libraries/System.IO.Compression/tests/System.IO.Compression.Tests.csprojIntegrates Zstandard test sources conditionally (excluding browser/WASI).
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardUtils.csAdds shared internal helpers for Zstandard implementation.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.csAdds platform attributes on ZstandardStream.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.Decompress.csAdds decompression-side stream implementation under the consolidated assembly.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.Compress.csAdds compression-side stream implementation under the consolidated assembly.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardEncoder.csAdds platform attributes on ZstandardEncoder.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardDictionary.csAdds platform attributes on ZstandardDictionary.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardDecoder.csAdds platform attributes on ZstandardDecoder.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardCompressionOptions.csAdds platform attributes on ZstandardCompressionOptions.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/Zstandard.PlatformNotSupported.csAdds browser/WASI stubs throwing PlatformNotSupportedException.
src/libraries/System.IO.Compression/src/System.IO.Compression.csprojMulti-target integration for Zstandard sources + stubs under System.IO.Compression.
src/libraries/System.IO.Compression/src/Resources/Strings.resxMerges Zstandard resource strings into System.IO.Compression resources.
src/libraries/System.IO.Compression/ref/System.IO.Compression.csAdds Zstandard APIs to the System.IO.Compression reference surface with platform attributes.
src/libraries/System.IO.Compression/README.mdUpdates README to reflect Zstandard support in System.IO.Compression.
src/libraries/System.IO.Compression/Directory.Build.propsRemoves BOM/normalizes file header.
src/libraries/System.IO.Compression.Zstandard/tests/System.IO.Compression.Zstandard.Tests.csprojDeletes old Zstandard test project (now integrated into System.IO.Compression tests).
src/libraries/System.IO.Compression.Zstandard/src/System.IO.Compression.Zstandard.csprojDeletes old Zstandard implementation project (now merged into System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/src/Resources/Strings.resxDeletes old resource file (strings moved to System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/ref/System.IO.Compression.Zstandard.csprojDeletes old ref project.
src/libraries/System.IO.Compression.Zstandard/ref/System.IO.Compression.Zstandard.csDeletes old ref surface file (moved into System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/System.IO.Compression.Zstandard.slnxDeletes old solution for the removed library.
src/libraries/System.IO.Compression.Zstandard/README.mdDeletes old library README (functionality now documented under System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/Directory.Build.propsDeletes old build props (no longer needed after consolidation).
src/libraries/NetCoreAppLibrary.propsRemoves System.IO.Compression.Zstandard from the NetCoreApp library list.

Comment threadsrc/libraries/System.IO.Compression/src/System.IO.Compression.csproj Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings February 23, 2026 07:34

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 23 out of 31 changed files in this pull request and generated 1 comment.

Comment threadsrc/libraries/System.IO.Compression/Directory.Build.props

@iremyuxiremyux left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@rzikm
rzikm merged commit 904ecbb into dotnet:mainFeb 24, 2026
94 of 96 checks passed
iremyux pushed a commit to iremyux/dotnet-runtime that referenced this pull request Mar 2, 2026
….Compression (dotnet#124634)
There is no real benefit from having the APIs in separate assembly
because:
- the Managed code size is rather small
- it P/Invokes System.IO.Compression.Native just like
System.IO.Compression managed assembly does
- It would lead to circular dependency if we decide to implement
dotnet#123532
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 27, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@rzikm@iremyux
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Move Zstandard APIs from System.IO.Compression.Zstandard to System.IO.Compression - #124634

Merged
rzikm merged 2 commits into
dotnet:mainfrom
rzikm:move-zstandard-to-compression
Feb 24, 2026
Merged

Move Zstandard APIs from System.IO.Compression.Zstandard to System.IO.Compression#124634
rzikm merged 2 commits into
dotnet:mainfrom
rzikm:move-zstandard-to-compression

Conversation

@rzikm

@rzikmrzikm commented Feb 20, 2026

Copy link
Copy Markdown
Member

There is no real benefit from having the APIs in separate assembly because:

….Compression
Move Zstandard compression/decompression APIs from the separate
System.IO.Compression.Zstandard assembly into the main
System.IO.Compression assembly for better organization.
Changes:
- Move source files to src/System/IO/Compression/Zstandard/ subdirectory
- Move test files to tests/Zstandard/ subdirectory
- Add PNSE stubs for browser/wasi platforms
- Update ref API with [UnsupportedOSPlatform] attributes
- Merge resource strings into System.IO.Compression Strings.resx
- Remove System.IO.Compression.Zstandard project reference from System.Net.Http
- Remove System.IO.Compression.Zstandard from NetCoreAppLibrary.props and sfx.slnx
- Delete the old System.IO.Compression.Zstandard directory
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @karelz, @dotnet/area-system-io-compression
See info in area-owners.md if you want to be subscribed.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR consolidates Zstandard compression APIs into the main System.IO.Compression library, removing the separate System.IO.Compression.Zstandard assembly and updating build/test infrastructure accordingly.

Changes:

  • Move Zstandard implementation and tests under System.IO.Compression (including ref API surface updates).
  • Add browser/WASI PlatformNotSupportedException stubs while keeping full implementations on Windows/Unix TFMs.
  • Remove the old System.IO.Compression.Zstandard project artifacts and references (solutions, props, project references).

Reviewed changes

Copilot reviewed 23 out of 31 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
src/libraries/sfx.slnxRemoves System.IO.Compression.Zstandard ref project from the libraries solution.
src/libraries/System.Net.Http/src/System.Net.Http.csprojDrops project reference to the removed System.IO.Compression.Zstandard project.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardTestUtils.csAdds shared helpers for Zstandard tests in the consolidated test project.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardEncoderDecoderTests.csAdds encoder/decoder coverage to System.IO.Compression tests.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardDictionaryTests.csAdds dictionary creation/training tests under System.IO.Compression.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardCompressionOptionsTests.csAdds validation tests for ZstandardCompressionOptions.
src/libraries/System.IO.Compression/tests/Zstandard/CompressionStreamUnitTests.Zstandard.csAdds ZstandardStream coverage integrated with existing stream test base.
src/libraries/System.IO.Compression/tests/System.IO.Compression.Tests.csprojIntegrates Zstandard test sources conditionally (excluding browser/WASI).
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardUtils.csAdds shared internal helpers for Zstandard implementation.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.csAdds platform attributes on ZstandardStream.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.Decompress.csAdds decompression-side stream implementation under the consolidated assembly.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.Compress.csAdds compression-side stream implementation under the consolidated assembly.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardEncoder.csAdds platform attributes on ZstandardEncoder.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardDictionary.csAdds platform attributes on ZstandardDictionary.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardDecoder.csAdds platform attributes on ZstandardDecoder.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardCompressionOptions.csAdds platform attributes on ZstandardCompressionOptions.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/Zstandard.PlatformNotSupported.csAdds browser/WASI stubs throwing PlatformNotSupportedException.
src/libraries/System.IO.Compression/src/System.IO.Compression.csprojMulti-target integration for Zstandard sources + stubs under System.IO.Compression.
src/libraries/System.IO.Compression/src/Resources/Strings.resxMerges Zstandard resource strings into System.IO.Compression resources.
src/libraries/System.IO.Compression/ref/System.IO.Compression.csAdds Zstandard APIs to the System.IO.Compression reference surface with platform attributes.
src/libraries/System.IO.Compression/README.mdUpdates README to reflect Zstandard support in System.IO.Compression.
src/libraries/System.IO.Compression/Directory.Build.propsRemoves BOM/normalizes file header.
src/libraries/System.IO.Compression.Zstandard/tests/System.IO.Compression.Zstandard.Tests.csprojDeletes old Zstandard test project (now integrated into System.IO.Compression tests).
src/libraries/System.IO.Compression.Zstandard/src/System.IO.Compression.Zstandard.csprojDeletes old Zstandard implementation project (now merged into System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/src/Resources/Strings.resxDeletes old resource file (strings moved to System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/ref/System.IO.Compression.Zstandard.csprojDeletes old ref project.
src/libraries/System.IO.Compression.Zstandard/ref/System.IO.Compression.Zstandard.csDeletes old ref surface file (moved into System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/System.IO.Compression.Zstandard.slnxDeletes old solution for the removed library.
src/libraries/System.IO.Compression.Zstandard/README.mdDeletes old library README (functionality now documented under System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/Directory.Build.propsDeletes old build props (no longer needed after consolidation).
src/libraries/NetCoreAppLibrary.propsRemoves System.IO.Compression.Zstandard from the NetCoreApp library list.

Comment threadsrc/libraries/System.IO.Compression/src/System.IO.Compression.csproj Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings February 23, 2026 07:34

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 23 out of 31 changed files in this pull request and generated 1 comment.

Comment threadsrc/libraries/System.IO.Compression/Directory.Build.props

@iremyuxiremyux left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@rzikm
rzikm merged commit 904ecbb into dotnet:mainFeb 24, 2026
94 of 96 checks passed
iremyux pushed a commit to iremyux/dotnet-runtime that referenced this pull request Mar 2, 2026
….Compression (dotnet#124634)
There is no real benefit from having the APIs in separate assembly
because:
- the Managed code size is rather small
- it P/Invokes System.IO.Compression.Native just like
System.IO.Compression managed assembly does
- It would lead to circular dependency if we decide to implement
dotnet#123532
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 27, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@rzikm@iremyux
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Move Zstandard APIs from System.IO.Compression.Zstandard to System.IO.Compression - #124634

Merged
rzikm merged 2 commits into
dotnet:mainfrom
rzikm:move-zstandard-to-compression
Feb 24, 2026
Merged

Move Zstandard APIs from System.IO.Compression.Zstandard to System.IO.Compression#124634
rzikm merged 2 commits into
dotnet:mainfrom
rzikm:move-zstandard-to-compression

Conversation

@rzikm

@rzikmrzikm commented Feb 20, 2026

Copy link
Copy Markdown
Member

There is no real benefit from having the APIs in separate assembly because:

….Compression
Move Zstandard compression/decompression APIs from the separate
System.IO.Compression.Zstandard assembly into the main
System.IO.Compression assembly for better organization.
Changes:
- Move source files to src/System/IO/Compression/Zstandard/ subdirectory
- Move test files to tests/Zstandard/ subdirectory
- Add PNSE stubs for browser/wasi platforms
- Update ref API with [UnsupportedOSPlatform] attributes
- Merge resource strings into System.IO.Compression Strings.resx
- Remove System.IO.Compression.Zstandard project reference from System.Net.Http
- Remove System.IO.Compression.Zstandard from NetCoreAppLibrary.props and sfx.slnx
- Delete the old System.IO.Compression.Zstandard directory
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @karelz, @dotnet/area-system-io-compression
See info in area-owners.md if you want to be subscribed.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR consolidates Zstandard compression APIs into the main System.IO.Compression library, removing the separate System.IO.Compression.Zstandard assembly and updating build/test infrastructure accordingly.

Changes:

  • Move Zstandard implementation and tests under System.IO.Compression (including ref API surface updates).
  • Add browser/WASI PlatformNotSupportedException stubs while keeping full implementations on Windows/Unix TFMs.
  • Remove the old System.IO.Compression.Zstandard project artifacts and references (solutions, props, project references).

Reviewed changes

Copilot reviewed 23 out of 31 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
src/libraries/sfx.slnxRemoves System.IO.Compression.Zstandard ref project from the libraries solution.
src/libraries/System.Net.Http/src/System.Net.Http.csprojDrops project reference to the removed System.IO.Compression.Zstandard project.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardTestUtils.csAdds shared helpers for Zstandard tests in the consolidated test project.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardEncoderDecoderTests.csAdds encoder/decoder coverage to System.IO.Compression tests.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardDictionaryTests.csAdds dictionary creation/training tests under System.IO.Compression.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardCompressionOptionsTests.csAdds validation tests for ZstandardCompressionOptions.
src/libraries/System.IO.Compression/tests/Zstandard/CompressionStreamUnitTests.Zstandard.csAdds ZstandardStream coverage integrated with existing stream test base.
src/libraries/System.IO.Compression/tests/System.IO.Compression.Tests.csprojIntegrates Zstandard test sources conditionally (excluding browser/WASI).
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardUtils.csAdds shared internal helpers for Zstandard implementation.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.csAdds platform attributes on ZstandardStream.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.Decompress.csAdds decompression-side stream implementation under the consolidated assembly.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.Compress.csAdds compression-side stream implementation under the consolidated assembly.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardEncoder.csAdds platform attributes on ZstandardEncoder.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardDictionary.csAdds platform attributes on ZstandardDictionary.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardDecoder.csAdds platform attributes on ZstandardDecoder.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardCompressionOptions.csAdds platform attributes on ZstandardCompressionOptions.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/Zstandard.PlatformNotSupported.csAdds browser/WASI stubs throwing PlatformNotSupportedException.
src/libraries/System.IO.Compression/src/System.IO.Compression.csprojMulti-target integration for Zstandard sources + stubs under System.IO.Compression.
src/libraries/System.IO.Compression/src/Resources/Strings.resxMerges Zstandard resource strings into System.IO.Compression resources.
src/libraries/System.IO.Compression/ref/System.IO.Compression.csAdds Zstandard APIs to the System.IO.Compression reference surface with platform attributes.
src/libraries/System.IO.Compression/README.mdUpdates README to reflect Zstandard support in System.IO.Compression.
src/libraries/System.IO.Compression/Directory.Build.propsRemoves BOM/normalizes file header.
src/libraries/System.IO.Compression.Zstandard/tests/System.IO.Compression.Zstandard.Tests.csprojDeletes old Zstandard test project (now integrated into System.IO.Compression tests).
src/libraries/System.IO.Compression.Zstandard/src/System.IO.Compression.Zstandard.csprojDeletes old Zstandard implementation project (now merged into System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/src/Resources/Strings.resxDeletes old resource file (strings moved to System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/ref/System.IO.Compression.Zstandard.csprojDeletes old ref project.
src/libraries/System.IO.Compression.Zstandard/ref/System.IO.Compression.Zstandard.csDeletes old ref surface file (moved into System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/System.IO.Compression.Zstandard.slnxDeletes old solution for the removed library.
src/libraries/System.IO.Compression.Zstandard/README.mdDeletes old library README (functionality now documented under System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/Directory.Build.propsDeletes old build props (no longer needed after consolidation).
src/libraries/NetCoreAppLibrary.propsRemoves System.IO.Compression.Zstandard from the NetCoreApp library list.

Comment threadsrc/libraries/System.IO.Compression/src/System.IO.Compression.csproj Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings February 23, 2026 07:34

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 23 out of 31 changed files in this pull request and generated 1 comment.

Comment threadsrc/libraries/System.IO.Compression/Directory.Build.props

@iremyuxiremyux left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@rzikm
rzikm merged commit 904ecbb into dotnet:mainFeb 24, 2026
94 of 96 checks passed
iremyux pushed a commit to iremyux/dotnet-runtime that referenced this pull request Mar 2, 2026
….Compression (dotnet#124634)
There is no real benefit from having the APIs in separate assembly
because:
- the Managed code size is rather small
- it P/Invokes System.IO.Compression.Native just like
System.IO.Compression managed assembly does
- It would lead to circular dependency if we decide to implement
dotnet#123532
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 27, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@rzikm@iremyux
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Move Zstandard APIs from System.IO.Compression.Zstandard to System.IO.Compression - #124634

Merged
rzikm merged 2 commits into
dotnet:mainfrom
rzikm:move-zstandard-to-compression
Feb 24, 2026
Merged

Move Zstandard APIs from System.IO.Compression.Zstandard to System.IO.Compression#124634
rzikm merged 2 commits into
dotnet:mainfrom
rzikm:move-zstandard-to-compression

Conversation

@rzikm

@rzikmrzikm commented Feb 20, 2026

Copy link
Copy Markdown
Member

There is no real benefit from having the APIs in separate assembly because:

….Compression
Move Zstandard compression/decompression APIs from the separate
System.IO.Compression.Zstandard assembly into the main
System.IO.Compression assembly for better organization.
Changes:
- Move source files to src/System/IO/Compression/Zstandard/ subdirectory
- Move test files to tests/Zstandard/ subdirectory
- Add PNSE stubs for browser/wasi platforms
- Update ref API with [UnsupportedOSPlatform] attributes
- Merge resource strings into System.IO.Compression Strings.resx
- Remove System.IO.Compression.Zstandard project reference from System.Net.Http
- Remove System.IO.Compression.Zstandard from NetCoreAppLibrary.props and sfx.slnx
- Delete the old System.IO.Compression.Zstandard directory
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @karelz, @dotnet/area-system-io-compression
See info in area-owners.md if you want to be subscribed.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR consolidates Zstandard compression APIs into the main System.IO.Compression library, removing the separate System.IO.Compression.Zstandard assembly and updating build/test infrastructure accordingly.

Changes:

  • Move Zstandard implementation and tests under System.IO.Compression (including ref API surface updates).
  • Add browser/WASI PlatformNotSupportedException stubs while keeping full implementations on Windows/Unix TFMs.
  • Remove the old System.IO.Compression.Zstandard project artifacts and references (solutions, props, project references).

Reviewed changes

Copilot reviewed 23 out of 31 changed files in this pull request and generated 1 comment.

Show a summary per file
FileDescription
src/libraries/sfx.slnxRemoves System.IO.Compression.Zstandard ref project from the libraries solution.
src/libraries/System.Net.Http/src/System.Net.Http.csprojDrops project reference to the removed System.IO.Compression.Zstandard project.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardTestUtils.csAdds shared helpers for Zstandard tests in the consolidated test project.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardEncoderDecoderTests.csAdds encoder/decoder coverage to System.IO.Compression tests.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardDictionaryTests.csAdds dictionary creation/training tests under System.IO.Compression.
src/libraries/System.IO.Compression/tests/Zstandard/ZstandardCompressionOptionsTests.csAdds validation tests for ZstandardCompressionOptions.
src/libraries/System.IO.Compression/tests/Zstandard/CompressionStreamUnitTests.Zstandard.csAdds ZstandardStream coverage integrated with existing stream test base.
src/libraries/System.IO.Compression/tests/System.IO.Compression.Tests.csprojIntegrates Zstandard test sources conditionally (excluding browser/WASI).
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardUtils.csAdds shared internal helpers for Zstandard implementation.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.csAdds platform attributes on ZstandardStream.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.Decompress.csAdds decompression-side stream implementation under the consolidated assembly.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardStream.Compress.csAdds compression-side stream implementation under the consolidated assembly.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardEncoder.csAdds platform attributes on ZstandardEncoder.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardDictionary.csAdds platform attributes on ZstandardDictionary.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardDecoder.csAdds platform attributes on ZstandardDecoder.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/ZstandardCompressionOptions.csAdds platform attributes on ZstandardCompressionOptions.
src/libraries/System.IO.Compression/src/System/IO/Compression/Zstandard/Zstandard.PlatformNotSupported.csAdds browser/WASI stubs throwing PlatformNotSupportedException.
src/libraries/System.IO.Compression/src/System.IO.Compression.csprojMulti-target integration for Zstandard sources + stubs under System.IO.Compression.
src/libraries/System.IO.Compression/src/Resources/Strings.resxMerges Zstandard resource strings into System.IO.Compression resources.
src/libraries/System.IO.Compression/ref/System.IO.Compression.csAdds Zstandard APIs to the System.IO.Compression reference surface with platform attributes.
src/libraries/System.IO.Compression/README.mdUpdates README to reflect Zstandard support in System.IO.Compression.
src/libraries/System.IO.Compression/Directory.Build.propsRemoves BOM/normalizes file header.
src/libraries/System.IO.Compression.Zstandard/tests/System.IO.Compression.Zstandard.Tests.csprojDeletes old Zstandard test project (now integrated into System.IO.Compression tests).
src/libraries/System.IO.Compression.Zstandard/src/System.IO.Compression.Zstandard.csprojDeletes old Zstandard implementation project (now merged into System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/src/Resources/Strings.resxDeletes old resource file (strings moved to System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/ref/System.IO.Compression.Zstandard.csprojDeletes old ref project.
src/libraries/System.IO.Compression.Zstandard/ref/System.IO.Compression.Zstandard.csDeletes old ref surface file (moved into System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/System.IO.Compression.Zstandard.slnxDeletes old solution for the removed library.
src/libraries/System.IO.Compression.Zstandard/README.mdDeletes old library README (functionality now documented under System.IO.Compression).
src/libraries/System.IO.Compression.Zstandard/Directory.Build.propsDeletes old build props (no longer needed after consolidation).
src/libraries/NetCoreAppLibrary.propsRemoves System.IO.Compression.Zstandard from the NetCoreApp library list.

Comment threadsrc/libraries/System.IO.Compression/src/System.IO.Compression.csproj Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings February 23, 2026 07:34

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 23 out of 31 changed files in this pull request and generated 1 comment.

Comment threadsrc/libraries/System.IO.Compression/Directory.Build.props

@iremyuxiremyux left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@rzikm
rzikm merged commit 904ecbb into dotnet:mainFeb 24, 2026
94 of 96 checks passed
iremyux pushed a commit to iremyux/dotnet-runtime that referenced this pull request Mar 2, 2026
….Compression (dotnet#124634)
There is no real benefit from having the APIs in separate assembly
because:
- the Managed code size is rather small
- it P/Invokes System.IO.Compression.Native just like
System.IO.Compression managed assembly does
- It would lead to circular dependency if we decide to implement
dotnet#123532
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Mar 27, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@rzikm@iremyux