vpashkov/awesome-nim
{ "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]!(#async-processing)
- [Build Systems/Package Management]!(#build-systemspackage-management)
- [Byte Size]!(#byte-size)
- [CheckSums]!(#checksums)
- [Database]!(#database)
- [Date Time]!(#date-time)
- [Deep Learning]!(#deep-learning)
- [Design]!(#design)
- [Embedded]!(#embedded)
- [Game Development]!(#game-development)
- [GUI]!(#gui)
- [IDE]!(#ide)
- [Implementations]!(#implementations)
- [Macros]!(#macros)
- [Package Repositories]!(#package-repositories)
- [REPL]!(#repl)
- [Scripting]!(#scripting)
- [Services]!(#services)
- [Text Processing]!(#text-processing)
- [Translation]!(#translation)
- [Template Engines]!(#template-engines)
- [Web]!(#web)
- [Web Frameworks]!(#web-frameworks)
- [Parsing HTML]!(#parsing-html)
- [Generating HTML]!(#generating-html)
- [Development Tools]!(#development-tools)
- [Binding Generators]!(#binding-generators)
- [Command-Line Interface Automation]!(#command-line-interface-automation)
- [Resources]!(#resources)
- [Books]!(#books)
- [Blogs]!(#blogs)
- [Community]!(#community)
- [Websites]!(#websites)
- [Contributing]!(#contributing)
Async processing
Section titled “Async processing”- Nim-Asyncdispatch2 - Hard fork of Asyncdispatch. [MIT]
[⇑]!(#contents “Go to the top”)
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]
[⇑]!(#contents “Go to the top”)
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]
[⇑]!(#contents “Go to the top”)
Checksums
Section titled “Checksums”- nim-crc32 - CRC32 for Nim, 2 proc, just pass the thing you want to do CRC. [MIT]
[⇑]!(#contents “Go to the top”)
Database
Section titled “Database”- ormin - Prepared SQL statement generator , A lightweight ORM.
- nimongo - Pure Nim lang MongoDB driver. http://sspkrolik.github.io/nimongo [MIT]
[⇑]!(#contents “Go to the top”)
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]
[⇑]!(#contents “Go to the top”)
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]
[⇑]!(#contents “Go to the top”)
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]
[⇑]!(#contents “Go to the top”)
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.
[⇑]!(#contents “Go to the top”)
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]
[⇑]!(#contents “Go to the top”)
- 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]
[⇑]!(#contents “Go to the top”)
- 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.
[⇑]!(#contents “Go to the top”)
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]
[⇑]!(#contents “Go to the top”)
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]
[⇑]!(#contents “Go to the top”)
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”.
[⇑]!(#contents “Go to the top”)
- INim - Interactive Nim Shell. [MIT]
Scripting
Section titled “Scripting”- Nimcr - Running Nim code with Shebangs.
[⇑]!(#contents “Go to the top”)
Services
Section titled “Services”- Luntic - Lightweight REST in-memory discovery service. [Apache-2.0]
[⇑]!(#contents “Go to the top”)
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]
[⇑]!(#contents “Go to the top”)
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]
[⇑]!(#contents “Go to the top”)
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.
[⇑]!(#contents “Go to the top”)
Parsing HTML
Section titled “Parsing HTML”- Nimquery - Library for
querying HTML using CSS selectors, like Javascript’s
document.querySelector. [MIT]
[⇑]!(#contents “Go to the top”)
Generating HTML
Section titled “Generating HTML”- HastyScribe - Self-contained markdown compiler generating self-contained HTML documents. https://h3rald.com/hastyscribe
[⇑]!(#contents “Go to the top”)
Development Tools
Section titled “Development Tools”Binding Generators
Section titled “Binding Generators”[⇑]!(#contents “Go to the top”)
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]
[⇑]!(#contents “Go to the top”)
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.
[⇑]!(#contents “Go to the top”)
- 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.
[⇑]!(#contents “Go to the top”)
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
[⇑]!(#contents “Go to the top”)
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).
[⇑]!(#contents “Go to the top”)
Contributing
Section titled “Contributing”Contributions are very welcome!
Please have a look at CONTRIBUTING for guidelines.
[⇑]!(#contents “Go to the top”)