Skip to content

godot-nim/gdext-nim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

godot-nim/gdext

Godot GDExtension binding for Nim-lang.

For instance to use, see demo. See wiki to get more detail.

Note

This library is not yet stable. If you encounter any problems in practical use, we encourage you to consider to create an Issue, as it is most likely on the library side. Either way, we will try to help.

Features

  • Godot 4.3 full api
  • Available to define&export your Class/Function/Signal/Property
  • Available to call engine functionalities from Nim
  • GLSLang-like swizzle operator (e.g. vector3.xxxyyyzzz)
  • Commandline-helper (see wiki - gdextwiz)
  • Define/Call virtual methods

Partially working

  • Hot reloading

    It works, but sometimes the editor crashes.

In preparation

  • Assist to generate a .gdextension file
  • Export descriptions
  • Develop engine plugins

Commands

install

nimble install https://github.com/godot-nim/gdext-nim

latest (devel)

nimble install https://github.com/godot-nim/gdext-nim@#head

uninstall

nimble uninstall gdext

upgrade

nimble uninstall gdext && nimble install https://github.com/godot-nim/gdext-nim

run test project

gdextwiz run testproject

run all tests

nimble test

Supported environments

OS

  • Linux
  • Macos
  • Windows

Engine

Nim compiler

  • nim-lang/nim 2.0.0 or higher

    Macos

    Use Nim installed via Homebrew, not choosenim. Due to the execution environment of Godot itself, a native AArch64/ARM64 build of Nim is required, and that choosenim installs a x86_64 build emulated via Rosetta.

Tested by author

Note

Support for environments not listed here is based on your reports. Please consider contributing.

  • OS: Linux (Arch)
  • Engine: Godot 4.3.stable.arch_linux
  • Nim: 2.0.0, 2.0.12, 2.2.0
  • CC: gcc version 14.2.1 20240910 (GCC)