Serializador MessagePack extremadamente rápido para C#, compatible con .NET, .NET Core, Unity y Xamarin, con compresión LZ4 integrada.
Cysharp/NativeCompressions
Bindings nativos de C# y APIs de streaming de alto nivel para LZ4, Zstandard y OpenZL experimental, en .NET y Unity.
- Estrellas
- 320
- Forks
- 11
- Issues abiertos
- 0
- Último commit
- anteayer
¿Qué es?
NativeCompressions integra las bibliotecas nativas LZ4 y Zstandard para .NET y Unity, y ofrece tanto APIs sencillas para arreglos de bytes como codificadores y decodificadores de streaming, wrappers de Stream y métodos asíncronos basados en PipeReader/PipeWriter. El proyecto utiliza las implementaciones nativas oficiales en lugar de ports en C# puro, por lo que se beneficia de las actualizaciones de rendimiento y seguridad del proyecto upstream.
La API de LZ4 usa el formato frame y admite opciones como el nivel de compresión, el tamaño de bloque, las sumas de comprobación y los diccionarios externos. Zstandard ofrece una API similar con entrenamiento de diccionarios. Hay bibliotecas nativas precompiladas para Windows, Linux, macOS, Android, iOS y Mac Catalyst, y se documenta una opción para WebAssembly con Blazor. Se incluyen bindings de OpenZL experimentales, todavía sin paquete NuGet ni API de alto nivel.
Los paquetes están divididos para que puedas instalar solo los runtimes de los algoritmos o las plataformas que necesites, y la guía de configuración para Unity explica cómo configurar NuGetForUnity.
Funciones clave
- 01Bindings nativos de LZ4 y Zstandard con APIs para arreglos de bytes y basadas en spans.
- 02Codificadores y decodificadores de streaming que devuelven OperationStatus, de forma similar a BrotliEncoder.
- 03Compresión asíncrona con Stream, PipeReader y PipeWriter.
- 04Compatibilidad con diccionarios, incluido el entrenamiento de diccionarios de Zstandard para LZ4.
- 05Bibliotecas nativas precompiladas para las principales plataformas de escritorio, móviles y de Apple.
- 06Bindings experimentales de OpenZL expuestos mediante la API C de bajo nivel.
Casos de uso
- Comprimir cargas de red o datos en caché en un servicio de .NET.
- Añadir descompresión rápida con LZ4 a juegos de Unity que cargan recursos comprimidos.
- Elegir entre LZ4 y Zstandard según el equilibrio entre velocidad y ratio de compresión.
- Comprimir datos en aplicaciones Blazor WebAssembly con la compilación nativa documentada.
Inicio rápido
- 1
Instala el paquete NativeCompressions desde NuGet
dotnet add package NativeCompressions - 2
Llama a LZ4.Compress y LZ4.Decompress, o a Zstandard.Compress y Zstandard.Decompress, en tu código
Antes de usarlo
- OpenZL es experimental, solo cuenta con bindings nativos y no tiene un paquete de NuGet.
- Las bibliotecas nativas de macOS requieren macOS 15.0 o posterior.
- Las apps para iOS y Mac Catalyst necesitan .NET 10 o posterior.
- Los procesos de 32 bits no son compatibles.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es NativeCompressions?
- Bindings nativos de C# y APIs de streaming de alto nivel para LZ4, Zstandard y OpenZL experimental, en .NET y Unity. NativeCompressions integra las bibliotecas nativas LZ4 y Zstandard para .NET y Unity, y ofrece tanto APIs sencillas para arreglos de bytes como codificadores y decodificadores de streaming, wrappers de Stream y métodos asíncronos basados en PipeReader/PipeWriter. El proyecto utiliza las implementaciones nativas oficiales en lugar de ports en C# puro, por lo que se beneficia de las actualizaciones de rendimiento y seguridad del proyecto upstream.
- ¿NativeCompressions es gratuito? ¿Qué licencia tiene?
- NativeCompressions es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿NativeCompressions sigue mantenido?
- Mantenimiento activo. El último commit de NativeCompressions fue el 5 nov 2026.
- ¿Para qué puedo usar NativeCompressions?
- Comprimir cargas de red o datos en caché en un servicio de .NET. Añadir descompresión rápida con LZ4 a juegos de Unity que cargan recursos comprimidos. Elegir entre LZ4 y Zstandard según el equilibrio entre velocidad y ratio de compresión. Comprimir datos en aplicaciones Blazor WebAssembly con la compilación nativa documentada.
- ¿Cómo se instala NativeCompressions?
- Instala el paquete NativeCompressions desde NuGet: dotnet add package NativeCompressions Llama a LZ4.Compress y LZ4.Decompress, o a Zstandard.Compress y Zstandard.Decompress, en tu código
- ¿Dónde consigo NativeCompressions?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/Cysharp/NativeCompressions
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Algoritmo de compresión sin pérdida en C extremadamente rápido, con un decodificador muy veloz y un equilibrio ajustable entre velocidad y ratio de compresión.
Continuación no oficial de dnSpy, un depurador y editor de ensamblados .NET y Unity que funciona sin código fuente.
Una biblioteca YAML 1.2 de alto rendimiento y baja asignación para C#, centrada en .NET y Unity, con serialización generada desde el código fuente.
Framework de plugins y mods que permite a desarrolladores y jugadores cargar código personalizado en juegos de Unity, XNA, FNA y MonoGame.
Una solución de scripting para crear juegos de Unity y Unreal Engine con TypeScript o JavaScript, y que ofrece backends de Lua y Python para Unity.