Sobre o projeto
Silk.NET é uma biblioteca de bindings .NET para APIs de multimídia, gráficos e computação de baixo nível. Ela tem como alvo OpenGL, OpenCL, OpenAL, OpenXR, GLFW, SDL, Vulkan, Assimp, WebGPU e DirectX, e destina-se à criação de aplicações multiplataforma de gráficos 3D, áudio, computação e háptica em C#.
Características principais descritas pelo projeto:
- Desempenho: o código C# gerado e seu assembly JIT foram examinados para manter baixo o overhead dos bindings.
- Bindings atualizados: um mecanismo eficiente de regeneração produz bindings a partir de fontes upstream com atualizações frequentes.
- Utilitários de alto nível: além dos bindings diretos, oferece wrappers e abstrações agnósticas de plataforma para janelas e entrada, para que as aplicações possam ter como alvo muitas plataformas sem alterações de código.
- Escopo tudo-em-um: gráficos, computação, áudio, entrada e janelas em uma única solução.
Compatibilidade: funciona em qualquer plataforma compatível com .NET Standard 2.0, incluindo .NET 6.0, Xamarin, .NET Framework 4.6.1+ e .NET Core 2.0+.
Status do projeto: Silk.NET 3.0 está em desenvolvimento, com foco em reformular como os bindings C# são gerados e resolver pontos problemáticos. A manutenção do Silk.NET 2.X é limitada porque a equipe é composta por voluntários; atualizações do 2.X são lançadas de forma ad-hoc. O README convida contribuidores e mantenedores a ajudar a sustentar o 2.X.
Compilar a partir do código-fonte requer os SDKs do .NET 6 e .NET 7, workloads de Android/iOS/Mac Catalyst, Android SDK versões 31, 33 e 34 com ferramentas NDK, Java JDK 11+ e, opcionalmente, Visual Studio 2022 17.0+. As compilações são executadas por meio de build.sh, build.cmd, build.ps1 ou nuke compile; nuke pack produz pacotes NuGet. Outras ações de compilação, como FullBuild, Pack e FullPack, estão disponíveis via nuke --plan.
A contribuição segue uma abordagem de pull request antecipado: faça um fork, crie um branch com um commit vazio, abra um pull request em rascunho antes de começar o trabalho, faça commits em pequenos incrementos e então solicite revisão. A solução é muito grande, e o CONTRIBUTING.md explica como o processo de compilação ajuda a gerenciar isso.
Governança e licenciamento: Silk.NET é um projeto oficial da .NET Foundation sob a licença MIT/X11, com dependências sob licenças compatíveis com MIT, e adota o código de conduta Contributor Covenant. O projeto aceita apoio financeiro e observa o suporte da JetBrains com licenças de IDE de código aberto. Exemplos estão disponíveis na pasta examples do repositório, e a equipe se comunica via Discord.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.