Librería de utilidades para mis proyectos en C# / .NET 10.
Reúne funcionalidades sueltas que se repiten entre mis apps, networking con handshake y TLS, criptografía, MPRIS2 para Linux, helpers de archivos y JSON, codecs de audio y compresión, etc.
- .NET SDK 10.0+
- Linux o Windows
- Audio: codificador y decodificador Opus para streaming en tiempo real.
- Compresión: LZ4 y Zstd, con helpers para comprimir y descomprimir arrays de bytes.
- Crypto: AES-CTR con número de secuencia para paquetes UDP desordenados, AES-GCM con contraseña, y derivación de clave por PBKDF2.
- Linux Only: MPRIS2 completo sobre D-Bus, y acceso a libc para leer directorios con verificación real de permisos.
- Networking: servidor y cliente TCP con handshake challenge-response, TLS opcional con certificado autofirmado en memoria, y un protocolo de paquetes con endianness configurable.
- Utilities: formato de tamaños y velocidades, hashing de archivos en streaming, obtención de la IP LAN real (ignorando VPN y adaptadores virtuales), y load/save de JSON tipado.
SharpUtils se distribuye como código fuente. La forma recomendada es como submódulo de git más un ProjectReference en el .csproj del proyecto que la consume.
Para añadir SharpUtils como submódulo a un proyecto existente:
cd <proyecto>
git submodule add https://github.com/1R1an1/SharpUtils.git SharpUtilsY referenciarla desde el .csproj del proyecto:
<ItemGroup>
<ProjectReference Include="SharpUtils/SharpUtils.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Remove="SharpUtils\**" />
</ItemGroup>Quien clone el proyecto después, necesita inicializar el submódulo:
git clone --recursive https://github.com/1R1an1/<proyecto>.git
# o, si ya estaba clonado sin --recursive:
git submodule update --init --recursiveToda la API pública está documentada con comentarios XML de C# /// <summary>, disponible en el IntelliSense (VS Code, Visual Studio y Rider) al usar la librería. La documentación está en español.
Este proyecto está bajo la licencia MPL 2.0.