Watch
2
0
Fork
You've already forked raylib-cs
0
C# bindings for raylib, a simple and easy-to-use library to learn videogames programming http://www.raylib.com/
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
tiger tiger tiger 99cfdae6ed fix: version the native extract marker and chain download via DependsOnTargets
The .extracted marker now includes the raylib package name, so bumping
TargetRaylibTag re-extracts the new archive instead of silently keeping
(and packing/copying) the previous version's files.

_PrepareNativeLibrary and _StageWasmNative now depend directly on
_DownloadAndExtractInternal instead of CallTarget-ing it; dependency
targets run in the same project instance, so the resolved properties
(RaylibPackageName etc.) propagate naturally.
2026-07-06 15:33:30 +02:00
.github chg: Modernize CI workflow, enable SourceLink 2026-06-24 11:00:17 +02:00
Examples Raylib 6.0 bugs after tests (#338) 2026-05-24 14:43:17 +01:00
Raylib-cs fix: version the native extract marker and chain download via DependsOnTargets 2026-07-06 15:33:30 +02:00
Raylib-cs.Tests fix: centralized version data in Directory.build.props, and fixed various interop details that had incorrect function signatures 2026-06-30 17:12:15 +02:00
.editorconfig Add .editorconfig and apply formatting 2023-08-27 15:20:26 +01:00
.gitignore fix: centralized version data in Directory.build.props, and fixed various interop details that had incorrect function signatures 2026-06-30 17:12:15 +02:00
Directory.Build.props fix: centralized version data in Directory.build.props, and fixed various interop details that had incorrect function signatures 2026-06-30 17:12:15 +02:00
Directory.Build.targets fix: centralized version data in Directory.build.props, and fixed various interop details that had incorrect function signatures 2026-06-30 17:12:15 +02:00
LICENSE Update release version to 7.0.1 (#293) 2025-01-30 21:51:19 +00:00
NuGet.config chg: New build system that uses the officially distributed binaries, bumped version to 8.0.0, simplified git workflow, removed deprecated OpenGL 1.1 functionality. 2026-01-04 15:35:55 +01:00
Raylib-cs.sln chg: New build system that uses the officially distributed binaries, bumped version to 8.0.0, simplified git workflow, removed deprecated OpenGL 1.1 functionality. 2026-01-04 15:35:55 +01:00
Raylib-cs.sln.DotSettings chg: New build system that uses the officially distributed binaries, bumped version to 8.0.0, simplified git workflow, removed deprecated OpenGL 1.1 functionality. 2026-01-04 15:35:55 +01:00
README.md chore: updated readme 2026-07-04 15:53:40 +02:00

Raylib-cs Logo

Raylib-cs

C# bindings for raylib, a simple and easy-to-use library to learn video games programming (www.raylib.com)

GitHub contributors License Chat on Discord GitHub stars Build

Raylib-cs targets net8.0, net10.0 and uses the official 6.0 release to build the native libraries.

Version 9.0.0 of Raylib-cs supports the following runtimes:

  • browser-wasm (raylib-6.0_webassembly) 🆕
  • linux-x64 (raylib-6.0_linux_amd64)
  • osx-arm64 (raylib-6.0_macos)
  • osx-x64 (raylib-6.0_macos)
  • win-x64 (raylib-6.0_win64_msvc16)
  • win-x86 (raylib-6.0_win32_msvc16)

The following frameworks are deprecated (fall back to Version 7.x if required):

  • net6.0 (end of life)

Status

Raylib-cs is passively maintained. Occasional updates may be released from time to time. Pull requests may be accepted if they don't have a large maintenance burden.

Installation - NuGet

This is the preferred method to get started.

  1. Pick a folder in which you would like to start a raylib project. For example, "MyRaylibCSProj."
  2. Then from a terminal (for example, a VSCode terminal), whilst in the directory you just created run the following commands. (Please keep in mind .NET should already be installed on your system)
dotnet new console
dotnet add package Raylib-cs

NuGet

If you need to edit the Raylib-cs source, then you will need to add the bindings as a project (see below).

If you are new to using NuGet (or you've forgotten) and are trying to run the above command in the command prompt, remember that you need to be inside the intended project directory (not just inside the solution directory); otherwise the command won't work.

Installation - Manual

  1. Download/clone the repo

  2. Add Raylib-cs/Raylib-cs.csproj to your project as an existing project.

  3. Download/build the native libraries for the platforms you want using the official 6.0 release. NOTE: the MSVC version is required for Windows platforms

  4. Set up the native libraries, so they are in the same directory as the executable/can be found in the search path.

  5. Start coding!

Hello, World!

using Raylib_cs;

namespace HelloWorld;

internal static class Program
{
    // STAThread is required if you deploy using NativeAOT on Windows
    // See https://github.com/raylib-cs/raylib-cs/issues/301
    [System.STAThread]
    public static void Main()
    {
        Raylib.InitWindow(800, 480, "Hello World");

        while (!Raylib.WindowShouldClose())
        {
            Raylib.BeginDrawing();
            Raylib.ClearBackground(Color.White);

            Raylib.DrawText("Hello, world!", 12, 12, 20, Color.Black);

            Raylib.EndDrawing();
        }

        Raylib.CloseWindow();
    }
}

Contributing

Feel free to open an issue. If you'd like to contribute, please fork the repository and make changes as you'd like. Pull requests are welcome.

If you want to request features or report bugs related to raylib directly (in contrast to this binding), please refer to the author's project repo.

License

See LICENSE for details.