vpashkov/awesome-nim
A curated list of awesome Nim frameworks, libraries and software. Inspired by other awesome lists.
{ "createdAt": "2015-08-04T16:02:35Z", "defaultBranch": "master", "description": "A curated list of awesome Nim frameworks, libraries and software. Inspired by other awesome lists.", "fullName": "vpashkov/awesome-nim", "homepage": "", "language": null, "name": "awesome-nim", "pushedAt": "2019-11-14T12:10:15Z", "stargazersCount": 649, "topics": [ "awesome", "awesome-list", "nim" ], "updatedAt": "2025-11-24T08:15:16Z", "url": "https://github.com/vpashkov/awesome-nim"}DEPRECATED - Use Curated Packages instead.
Section titled “DEPRECATED - Use Curated Packages instead.”Awesome Nim 
Section titled “Awesome Nim ”A curated list of awesome Nim frameworks, libraries and software. Inspired by other awesome lists.
Contents
Section titled “Contents”Table of contents
Async processing
Section titled “Async processing”- Nim-Asyncdispatch2 - Hard fork of Asyncdispatch. [MIT]
Build Systems/Package Management
Section titled “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
Section titled “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
Section titled “Checksums”- nim-crc32 - CRC32 for Nim, 2 proc, just pass the thing you want to do CRC. [MIT]
Database
Section titled “Database”- ormin - Prepared SQL statement generator , A lightweight ORM.
- nimongo - Pure Nim lang MongoDB driver. http://sspkrolik.github.io/nimongo [MIT]
Date Time
Section titled “Date Time”- nim-datetime2human - Calculate date & time with precision from seconds to millenniums. Human friendly date time as string. ISO-8601. [LGPL]
Deep Learning
Section titled “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
Section titled “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
Section titled “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
Section titled “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]
- 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]
- Aporia - Text editor to get started with Nim easily (not maintained anymore).
- Editor Integration - Official list of editor plugins for Nim.
- Nim Playground - Code and run Nim online.
Implementations
Section titled “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
Section titled “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
Section titled “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”.
- INim - Interactive Nim Shell. [MIT]
Scripting
Section titled “Scripting”- Nimcr - Running Nim code with Shebangs.
Services
Section titled “Services”- Luntic - Lightweight REST in-memory discovery service. [Apache-2.0]
Text Processing
Section titled “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
Section titled “Translation”- nim-tinyslation - Text string translation from free online crowdsourced API. [LGPL]
Template Engines
Section titled “Template Engines”- smalte - Is a dead simple and lightweight template engine. Specially designed for configure application before start in Docker. [MIT]
Web Frameworks
Section titled “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
Section titled “Parsing HTML”- Nimquery - Library for
querying HTML using CSS selectors, like Javascript’s
document.querySelector. [MIT]
Generating HTML
Section titled “Generating HTML”- HastyScribe - Self-contained markdown compiler generating self-contained HTML documents. https://h3rald.com/hastyscribe
Development Tools
Section titled “Development Tools”Binding Generators
Section titled “Binding Generators”Command-Line Interface Automation
Section titled “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
Section titled “Resources”- 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.
- Nim Blog - Official Nim blog.
- Goran Krampe - Wrapping C, arduino, performance, links.
- HookRace - Blog with multiple articles on Nim.
- Rants from the Ballmer Peak - Posts on Nim and other languages.
- Yuriy Glukhov’s blog - Making and shipping a game in Nim
- Araq’s Musings - Blog on Nim from the creator himself.
Community
Section titled “Community”- The Nim forum
- The Nim IRC channel
- The Nim Gitter channel
- The Nim mailing list
- The Nim SubReddit
- The Nim Telegram
- The Nim Telegram on Spanish
Websites
Section titled “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
Section titled “Contributing”Contributions are very welcome!
Please have a look at CONTRIBUTING for guidelines.