Skip to content
A curated list of awesome Nim frameworks, libraries and software. Inspired by other awesome lists.
Branch: master
Clone or download
Latest commit 3be9205 Feb 8, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
CONTRIBUTING.md Add CONTRIBUTING.md Aug 5, 2015
LICENSE.md Add license file Apr 8, 2018
README.md keep both links Feb 8, 2019

README.md

Awesome Nim Awesome

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

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

  • iup - Wrapper for IUP - Desktop GUI's.
  • 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

  • Aporia - Text editor to get started with Nim easily (not maintained anymore).
  • Editor Integration - Official list of editor plugins for Nim.

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]

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

Development Tools

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, available via Manning's early access program.
  • 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

Community

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.

You can’t perform that action at this time.