Repolode
Cysharp

Cysharp/NativeCompressions

.NET과 Unity용 LZ4, Zstandard 및 실험적인 OpenZL의 C# 네이티브 바인딩과 고수준 스트리밍 API입니다.

스타
320
포크
11
열린 이슈
0
마지막 커밋
그저께

어떤 프로젝트인가요?

NativeCompressions는 .NET과 Unity에서 네이티브 LZ4 및 Zstandard 라이브러리를 사용할 수 있게 해 주며, 간단한 byte array API뿐 아니라 스트리밍 인코더와 디코더, Stream 래퍼, PipeReader/PipeWriter 기반 비동기 메서드도 제공합니다. 이 프로젝트는 순수 C# 포트 대신 공식 네이티브 구현을 사용해 업스트림의 성능 및 보안 업데이트를 반영합니다.

LZ4 API는 프레임 형식을 사용하며 압축 수준, 블록 크기, 체크섬, 외부 사전 등의 옵션을 지원합니다. Zstandard도 사전 학습 기능을 포함해 유사한 API를 제공합니다. Windows, Linux, macOS, Android, iOS, Mac Catalyst용 사전 빌드 네이티브 라이브러리가 제공되며, Blazor용 WebAssembly 경로도 문서화되어 있습니다. OpenZL 바인딩은 실험 단계로 포함되어 있으며, 아직 NuGet 패키지나 고수준 API는 없습니다.

필요한 알고리즘이나 플랫폼 런타임만 설치할 수 있도록 패키지가 분리되어 있으며, Unity 설정 가이드에서는 NuGetForUnity 구성 방법을 다룹니다.

핵심 기능

  • 01byte array 및 span 기반 API를 제공하는 네이티브 LZ4 및 Zstandard 바인딩.
  • 02BrotliEncoder와 유사하게 OperationStatus를 반환하는 스트리밍 인코더와 디코더.
  • 03Stream, PipeReader, PipeWriter를 통한 비동기 압축.
  • 04Zstandard 사전 학습을 비롯한 사전 지원.
  • 05주요 데스크톱, 모바일 및 Apple 플랫폼용 사전 빌드 네이티브 라이브러리.
  • 06로우레벨 C API를 통해 제공되는 실험적 OpenZL 바인딩.

활용 사례

  • .NET 서비스에서 네트워크 페이로드나 캐시 데이터를 압축하기.
  • 압축된 에셋을 로드하는 Unity 게임에 빠른 LZ4 압축 해제를 추가하기.
  • 속도와 압축률의 서로 다른 절충점을 고려해 LZ4와 Zstandard 중 선택하기.
  • 문서화된 네이티브 빌드를 사용해 Blazor WebAssembly 앱에서 데이터를 압축하기.

빠른 시작

  1. 1

    NuGet에서 NativeCompressions 패키지를 설치합니다

    dotnet add package NativeCompressions
  2. 2

    코드에서 LZ4.Compress와 LZ4.Decompress 또는 Zstandard.Compress와 Zstandard.Decompress를 호출합니다

사용 전 알아둘 점

  • OpenZL은 실험 단계이며 네이티브 바인딩만 제공하고 NuGet 패키지는 없습니다.
  • macOS 네이티브 라이브러리를 사용하려면 macOS 15.0 이상이 필요합니다.
  • iOS 및 Mac Catalyst 앱에는 .NET 10 이상이 필요합니다.
  • 32비트 프로세스는 지원되지 않습니다.

포함된 컬렉션

토픽

#compression#lz4#zstandard#dotnet#csharp#unity#native-bindings#streaming

자주 묻는 질문

NativeCompressions은(는) 무엇인가요?
.NET과 Unity용 LZ4, Zstandard 및 실험적인 OpenZL의 C# 네이티브 바인딩과 고수준 스트리밍 API입니다. NativeCompressions는 .NET과 Unity에서 네이티브 LZ4 및 Zstandard 라이브러리를 사용할 수 있게 해 주며, 간단한 byte array API뿐 아니라 스트리밍 인코더와 디코더, Stream 래퍼, PipeReader/PipeWriter 기반 비동기 메서드도 제공합니다. 이 프로젝트는 순수 C# 포트 대신 공식 네이티브 구현을 사용해 업스트림의 성능 및 보안 업데이트를 반영합니다.
NativeCompressions은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
NativeCompressions은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
NativeCompressions은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. NativeCompressions의 마지막 커밋은 2026년 11월 5일입니다.
NativeCompressions은(는) 어디에 사용할 수 있나요?
.NET 서비스에서 네트워크 페이로드나 캐시 데이터를 압축하기. 압축된 에셋을 로드하는 Unity 게임에 빠른 LZ4 압축 해제를 추가하기. 속도와 압축률의 서로 다른 절충점을 고려해 LZ4와 Zstandard 중 선택하기. 문서화된 네이티브 빌드를 사용해 Blazor WebAssembly 앱에서 데이터를 압축하기.
NativeCompressions는 어떻게 설치하나요?
NuGet에서 NativeCompressions 패키지를 설치합니다: dotnet add package NativeCompressions 코드에서 LZ4.Compress와 LZ4.Decompress 또는 Zstandard.Compress와 Zstandard.Decompress를 호출합니다
NativeCompressions은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/Cysharp/NativeCompressions

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트