Nim: high-level code without leaving the C ground
Nim aims to preserve C-like performance, deployment freedom, and FFI while providing static typing, inference, abstraction, and compile-time metaprogramming. It is not a Rust-style safe-C replacement: ordinary code can be high level, but pointers, C ABI, manual memory management, and inline C remain available when needed.
Guide structure
This is a Nim Architecture Guide, organized around the site map rather than a duplicate of the official reference:
- Introduction — overview, guide scope, and design philosophy.
- Tutorial — setup and builds and language basics.
- Language architecture — compiler and backend model.
- Backends and FFI — C interoperability, JavaScript, and WASM/MoonBit.
- Types, memory, and compile-time programming — type/ORC/ARC model and macros.
- Runtime, web, GUI, and AI — async/NimScript, Nim JS engines, GUI development, and GPU/LLMs.
- Comparisons and practice — C/Rust/Zig and adoption.
Tutorials, standard library, GUI, systems, ecosystem, source reading, roadmap, and appendix material are planned in the guide scope.
Nim's stated values are Efficient, Expressive, Elegant. Consult the official site, manual, tutorial, and standard library for authoritative details.