Awesome Nim 
A curated list of awesome Nim
frameworks, libraries and software. Inspired by other awesome
lists.
Contents
Table of contents
Async processing
⇑
Build Systems/Package
Management
- ChooseNim -
Installing and switching between Nim versions (à la rustup, pyenv).
[MIT]
- Nake - Describe your
Nim builds as tasks. [MIT]
- Nawabs - A build system
that throws away version numbering in favor of git hashes. [MIT]
- Nimble - Nimble can
be used as a build system. [BSD]
⇑
Byte Size
- nim-bytes2human
- Calculate all Byte units from an integer, with precision from Bytes to
Yottabytes, and return a human friendly string representation.
[LGPL]
⇑
Checksums
- nim-crc32
- CRC32 for Nim, 2 proc, just pass the thing you want to do CRC.
[MIT]
⇑
Database
- ormin - Prepared SQL
statement generator , A lightweight ORM.
- nimongo - Pure
Nim lang MongoDB driver. http://sspkrolik.github.io/nimongo [MIT]
⇑
Date Time
- nim-datetime2human
- Calculate date & time with precision from seconds to millenniums.
Human friendly date time as string. ISO-8601. [LGPL]
⇑
Deep Learning
- Arraymancer - A
fast, ergonomic and portable tensor library in Nim with a deep learning
focus for CPU, GPU, OpenCL and embedded devices. [Apache-2.0]
- NimTorch -
PyTorch - Python + Nim. A Nim front-end to PyTorch’s native backend,
combining Nim’s speed, productivity and portability with PyTorch’s
latest implementations. [MIT]
⇑
Design
- nim-random-font-color
- Random curated Fonts, pastel Colors and Seamless CSS3 Patterns for
your UI/UX design, design for non-designers, poors man design.
[LGPL]
⇑
Embedded
- msp430f5510
- Run Nim on MSP430f5510 micro-controller (6KB of RAM).
- stm32f3 - Run
Nim on STM32F3 micro-controller (16KB of RAM).
- ardunimo - Nim
wrapper for Arduino + LinkIt ONE SDK by Mediatek.
- ardunimesp -
Nim wrapper for Arduino ESP8266 framework + A tool for flash, compile
and make the nim project into an Arduino project.
⇑
Game Development
- frag -
Cross-platform 2D|3D game framework for the Nim programming language.
[MIT]
- zengine - 2D
| 3D Game development library.
- SDL2 - Wrapper for
SDL 2. [MIT]
- GLAD - Multi-Language
Vulkan/GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specs.
[MIT]
- nim-glm - Port of
the popular glm C++ library to Nim. [MIT]
⇑
GUI
- ui - Wrapper for IUP -
Beginnings of what might become Nim’s official UI library.
- nim-kdialog
- Nim Kdialog
Qt5 Wrapper for Desktop. [LGPL]
- nimAntTweakBar -
Wrapper for AntTweakBar.
- nimx - Desktop,
Mobile & Web GUI framework in Nim.
- NiGui -
cross-platform, desktop GUI toolkit [MIT]
⇑
IDE
⇑
Implementations
- Nim - Nim (formerly
known as “Nimrod”) is a compiled, garbage-collected systems programming
language which has an excellent productivity/performance ratio. Nim’s
design focuses on efficiency, expressiveness, elegance (in the order of
priority). [MIT] website
- Nlvm - LLVM
backend for Nim. [MIT]
⇑
Macros
- cascade - Method
& assignment cascades for Nim, inspired by Smalltalk & Dart.
[MIT]
- gara - Macro-based
pattern matching library. [MIT]
- pipe - Pipe
operator for Nim, as seen in functional languages. [MIT]
- unpack -
Sequence/object unpacking/destructuring. [MIT]
⇑
Package Repositories
- Nim packages -
List of packages for Nimble.
- Nim package directory - This
service allows you to explore Nim packages known to Nimble. It tests
package installation and generates documentation using “nim doc”.
⇑
REPL
- INim -
Interactive Nim Shell. [MIT]
Scripting
- Nimcr -
Running Nim code with Shebangs.
⇑
Services
- Luntic -
Lightweight REST in-memory discovery service. [Apache-2.0]
⇑
Text Processing
- regex - Pure Nim
regex engine with linear time match. [MIT]
- glob - Pure library
for matching file paths against Unix style glob patterns. [MIT]
- nim-datauri
- Data URI Base64 UTF-8. [LGPL]
⇑
Translation
- nim-tinyslation
- Text string translation from free online crowdsourced API. [LGPL]
Template Engines
- smalte - Is a dead
simple and lightweight template engine. Specially designed for configure
application before start in Docker. [MIT]
⇑
Web
Web Frameworks
- Jester - The
sinatra-like web framework for Nim. Jester provides a DSL for quickly
creating web applications in Nim. [MIT]
- Karax - Framework
for developing single page applications in Nim.
- nawak - Web
micro-framework in Nimrod, heavily inspired by jester, flask and the
like. [MIT]
- oauth - OAuth library
for Nim. [Apache-2.0]
- rosencrantz -
DSL to write web servers, inspired by Spray and its successor Akka HTTP.
⇑
Parsing HTML
- Nimquery - Library
for querying HTML using CSS selectors, like Javascript’s
document.querySelector. [MIT]
⇑
Generating HTML
- HastyScribe -
Self-contained markdown compiler generating self-contained HTML
documents. https://h3rald.com/hastyscribe
⇑
Binding Generators
- Nimpy - Gen Python
wrappers, call python from nim. [MIT]
- Pymod - Gen Python
C-API wrappers. [MIT]
⇑
Command-Line Interface
Automation
- cligen - Infer &
generate command-line interace/option/argument parsers [MIT]
- docopt.nim -
Command-line args parser [MIT]
- commandeer -
Provides a small command line parsing DSL (domain specific language)
[MIT]
⇑
Resources
Books
- Nim in
Action - Nim’s first book
- Nim Days - A
project to document my journey with nim with mini applications,
libraries documented from A to Z and also to provide new Nim users with
some extra in depth information.
⇑
Blogs
⇑
⇑
Websites
- Nim Basics -
Tutorial for beginners and people just starting with Nim.
- How I start - Great
guide going from 0 to a bf interpreter and then a bf to Nim
compiler.
- Learn Nim in Y
minutes - Whirlwind tour.
- Nim by Example -
Series of pages and examples for learning the Nim programming
language.
- Nim
for Python programmers - Guide to Nim for people with experience in
Python.
- Rosettacode:Nim -
100s of solutions for various tasks using Nim (Implementations available
in other languages as well).
⇑
Contributing
Contributions are very welcome!
Please have a look at CONTRIBUTING
for guidelines.
⇑