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.