프로젝트 소개

Silk.NET은 저수준 멀티미디어, 그래픽스 및 컴퓨트 API를 위한 .NET 바인딩 라이브러리입니다. OpenGL, OpenCL, OpenAL, OpenXR, GLFW, SDL, Vulkan, Assimp, WebGPU, DirectX를 대상으로 하며, C#으로 크로스 플랫폼 3D 그래픽스, 오디오, 컴퓨트 및 햅틱 애플리케이션을 구축하는 데 사용됩니다. 프로젝트에서 설명하는 주요 특징: - 성능: 바인딩 오버헤드를 낮게 유지하기 위해 생성된 C# 코드와 그 JIT 어셈블리를 검토했습니다. - 최신 바인딩: 효율적인 재생성 메커니즘이 업스트림 소스에서 바인딩을 생성하며 자주 업데이트됩니다. - 고수준 유틸리티: 직접 바인딩 외에도 윈도잉과 입력을 위한 래퍼와 플랫폼 독립적 추상화를 제공하므로 애플리케이션이 코드 변경 없이 여러 플랫폼을 대상으로 할 수 있습니다. - 올인원 범위: 그래픽스, 컴퓨트, 오디오, 입력 및 윈도잉을 하나의 솔루션에서 제공합니다. 호환성: .NET 6.0, Xamarin, .NET Framework 4.6.1+, .NET Core 2.0+를 포함하여 .NET Standard 2.0을 준수하는 모든 플랫폼에서 작동합니다. 프로젝트 상태: Silk.NET 3.0이 개발 중이며, C# 바인딩 생성 방식을 재작업하고 문제점을 해결하는 데 초점을 맞추고 있습니다. 팀이 자원봉사자로 구성되어 있어 Silk.NET 2.X 유지 관리는 제한적이며, 2.X 업데이트는 수시로 릴리스됩니다. README는 2.X를 지속할 기여자와 유지 관리자를 초대합니다. 소스에서 빌드하려면 .NET 6 및 .NET 7 SDK, Android/iOS/Mac Catalyst 워크로드, NDK 도구가 포함된 Android SDK 버전 31, 33, 34, Java JDK 11+, 선택적으로 Visual Studio 2022 17.0+가 필요합니다. 빌드는 build.sh, build.cmd, build.ps1 또는 nuke compile을 통해 실행됩니다. nuke pack은 NuGet 패키지를 생성합니다. FullBuild, Pack, FullPack 같은 다른 빌드 작업은 nuke --plan을 통해 사용할 수 있습니다. 기여는 초기 풀 리퀘스트 접근 방식을 따릅니다: 포크하고, 빈 커밋으로 브랜치를 만들고, 작업을 시작하기 전에 드래프트 풀 리퀘스트를 열고, 작은 단위로 커밋한 다음 리뷰를 요청합니다. 솔루션이 매우 크며, CONTRIBUTING.md는 빌드 프로세스가 이를 관리하는 방법을 설명합니다. 거버넌스 및 라이선스: Silk.NET은 MIT/X11 라이선스 하의 공식 .NET Foundation 프로젝트이며, 종속성은 MIT 호환 라이선스를 따르고 Contributor Covenant 행동 강령을 채택합니다. 프로젝트는 재정 지원을 받으며 JetBrains의 오픈 소스 IDE 라이선스 지원을 언급합니다. 예제는 저장소의 examples 폴더에서 사용할 수 있으며, 팀은 Discord를 통해 소통합니다.