Skip to content

Nim

September 29, 2023

Efficient, expressive, elegant

transpile to C/C++ code
v-lang seems a better choice

Nim Programming Language
Nim Docs
Nim in 100 Seconds - YouTube
Nim Programming Language - YouTube

Nim Manual pragmas ({. .})
Nim Standard Library

nim c -r app.nim
# -d:release release build
# -d:danger  disable all runtime checks

Nim Compiler User Guide
Nim Backend Integration

NimConf 2020 - YouTube

HookRace - a Nim blog for now
What is special about Nim? 路 HookRace - a Nim blog for now
What makes Nim practical? 路 HookRace - a Nim blog for now
Nim Adventures 路 HookRace - a Nim blog for now
Nim 路 How I Start.
Nim for Beginners - YouTube

Could Nim Replace Python? - Towards Data Science
Nim language draws from best of Python, Rust, Go, and Lisp | InfoWorld state as of 2017-01

Libraries

nim-lang/nimble: Package manager for the Nim programming language.

Nim package directory
Curated Packages 路 nim-lang/Nim Wiki
xflywind/awesome-nim: A curated list of awesome Nim frameworks, libraries and software.

nim-lang/nimble: Creating Packages

nimble init

doc/testament

Memory model

Nim's Memory Management
The Nim memory model

FFI

Chapter 8. Interfacing with other languages - Nim in Action
Nim Manual - Dynlib pragma for import
Binding to C Libraries with Nim
What makes Nim practical? 路 HookRace Blog
Nim wrapping C - Roads Less Taken

int printf(const char *format, ...);
proc printf(format: cstring): cint {.importc, varargs, header: "stdio.h", discardable.}
printf("My name is %s and I am %d years old!\n", "Ben", 30)

proc init*(flags: uint32): cint {.importc: "SDL_Init", dynlib: libName.}

nim-lang/c2nim: c2nim is a tool to translate Ansi C code to Nim. The output is human-readable Nim code that is meant to be tweaked by hand before and after the translation process.
nimterop/nimterop: Nimterop is a Nim package that aims to make C/C++ interop seamless