랭킹으로 돌아가기

dotnet/Silk.NET

C#dotnet.github.io/Silk.NET

The high-speed OpenGL, OpenCL, OpenAL, OpenXR, GLFW, SDL, Vulkan, Assimp, WebGPU, and DirectX bindings library your mother warned you about.

openglcsharpvulkanopenalopenclnativegraphics3dgraphics-librarygame-developmentscientific-visualizationglfw
스타 성장
스타
5.1k
포크
469
주간 성장
이슈
89
2k4k
2019년 6월2021년 10월2024년 3월2026년 7월
README


NuGet Version Preview Feed CI Build Join our Discord

🚧 Silk.NET 3.0 is coming... 🚧

We are currently hard at work on Silk.NET 3.0 - the latest and greatest Silk.NET, laser-focused on addressing pain points and reimagining how C# bindings libraries can be done.

Because of this, Silk.NET 2.X investment is currently limited by the Silk.NET team, who consist entirely of volunteers working in their free time. Silk.NET 2.X updates are now released ad-hoc when development effort is justified and available.

If you're reading this and would like to step up to keep Silk.NET 2.X going, be that as a contributor or a maintainer, please do not hesitate to reach out to the Silk.NET team in our official Discord server!

Learn more about Silk.NET 3.0:

About Silk.NET 2.X

Silk.NET is your one-stop-shop for high-speed .NET multimedia, graphics, and compute; providing bindings to popular low-level APIs such as OpenGL, OpenCL, OpenAL, OpenXR, GLFW, SDL, Vulkan, Assimp, WebGPU, and DirectX.

Use Silk.NET to spruce up applications with cross-platform 3D graphics, audio, compute and haptics!

Silk.NET works on any .NET Standard 2.0 compliant platform, including .NET 6.0, Xamarin, .NET Framework 4.6.1+, and .NET Core 2.0+.


.NET Foundation

Proud to be an official project under the benevolent .NET Foundation umbrella.

Features

Performance

Having poured lots of hours into examining generated C# code and its JIT assembly, you can count on us to deliver blazing fast bindings with negligible overhead induced by Silk.NET!

Up-to-date

With an efficient bindings regeneration mechanism, we are committed to ensuring our bindings reflect the latest specifications with frequent updates generated straight from the upstream sources.

High-level utilities

In addition to providing high-speed, direct, and transparent bindings, we provide high-level utilities and wrappers to maximise productivity in common workloads such as platform-agnostic abstractions around Windowing and Input, bringing your apps to a vast number of platforms without changing a single line!

Good-to-go

Silk.NET caters for anything you could need in swift development of multimedia, graphics, compute applications. Silk.NET is an all-in-one solution, complete with Graphics, Compute, Audio, Input, and Windowing.

The team

We currently have the following maintainers:

In addition, the Silk.NET working group help drive larger user-facing changes providing key consultation from the perspective of dedicated users and professionals.

Building from source

Prerequisites

  • .NET 6 SDK and .NET 7 SDK
  • Android, iOS, and Mac Catalyst workloads (use dotnet workload install android ios maccatalyst to install them)
    • On Linux, ios and maccatalyst should be omitted as they are not available
  • Android SDK versions 31, 33, and 34 with NDK tools installed
    • On Windows, for best results, this should be installed into C:\ProgramData\Android\android-sdk
  • Java JDK 11+
  • Visual Studio 2022 Community version 17.0 or later (optional)

Instructions

  • Clone the repository
    • Note: Avoid performing a recursive clone as the submodules are not necessary for a normal build
  • Run build.sh, build.cmd, build.ps1, or nuke compile
    • On Linux, you may need to pass --msbuild-properties AndroidSdkDirectory=/path/to/android/sdk
  • Use the built assemblies
    • To get .nupkgs that you can use with NuGet instead, use nuke pack

There are more advanced build actions you can do too, such as FullBuild, Pack, FullPack, among others which you can view by doing nuke --plan.

Contributing

Silk.NET uses and encourages Early Pull Requests. Please don't wait until you're done to open a PR!

  1. Fork Silk.NET
  2. Add an empty commit to a new branch to start your work off: git commit --allow-empty -m "start of [thing you're working on]"
  3. Once you've pushed a commit, open a draft pull request. Do this before you actually start working.
  4. Make your commits in small, incremental steps with clear descriptions.
  5. Tag a maintainer when you're done and ask for a review!

The Silk.NET solution is very large. Learn about how you can combat this using our build process in CONTRIBUTING.md.

Funding

Silk.NET requires significant effort to maintain, as such we greatly appreciate any financial support you are able to provide!

This helps ensure Silk.NET's long term viability, and to help support the developers who maintain Silk.NET in their free time. Kai is accepting GitHub Sponsorships.

Further resources

Licensing and governance

Silk.NET is distributed under the very permissive MIT/X11 license and all dependencies are distributed under MIT-compatible licenses.

Silk.NET is a .NET Foundation project, and has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information, see the .NET Foundation Code of Conduct.


JetBrains

Special thanks to JetBrains for supporting us with open-source licenses for their IDEs.

관련 저장소
alacritty/alacritty

A cross-platform, OpenGL terminal emulator.

Rustcrates.ioApache License 2.0terminal-emulatorsopengl
alacritty.org
65k3.5k
kovidgoyal/kitty

If you live in the terminal, kitty is made for you! Cross-platform, fast, feature-rich, GPU based.

PythonPyPIGNU General Public License v3.0terminal-emulatorsopengl
sw.kovidgoyal.net/kitty/
34k1.4k
raysan5/raylib

A simple and easy-to-use library to enjoy videogames programming

Czlib Licenseraylibc
raylib.com
34k3.2k
ssloy/tinyrenderer

A brief computer graphics / rendering course

C++Otheropenglc-plus-plus
haqr.eu/tinyrenderer/
23.9k2.3k
google/filament

Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2

C++Apache License 2.0pbrgraphics
google.github.io/filament/
20.3k2.2k
lettier/3d-game-shaders-for-beginners

🎮 A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.

C++shaders3d
lettier.github.io/3d-game-shaders-for-beginners/index.html
19.8k1.5k
RPCS3/rpcs3

PlayStation 3 emulator and debugger

C++GNU General Public License v2.0assembly-languagecpp
rpcs3.net
19.2k2.3k
gfx-rs/wgpu

A cross-platform, safe, pure-Rust graphics API.

Rustcrates.ioApache License 2.0webgpurust
wgpu.rs
17.6k1.4k
kitao/pyxel

A retro game engine for Python

Rustcrates.ioOthergamegame-development
17.6k929
bkaradzic/bgfx

Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.

CBSD 2-Clause "Simplified" Licenseenginerendering
bkaradzic.github.io/bgfx/overview.html
17.3k2.1k
OpenRCT2/OpenRCT2

An open source re-implementation of RollerCoaster Tycoon 2 🎢

C++GNU General Public License v3.0c-plus-plusgame
openrct2.io
16k1.9k
glfw/glfw

A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input

Czlib Licensevulkanopengl
glfw.org
15.2k5.9k