# DEPRECATED - Use [Curated Packages](https://github.com/nim-lang/Nim/wiki/Curated-Packages) instead. # Awesome Nim [![Awesome](https://awesome.re/badge.svg)](https://awesome.re) A curated list of awesome [Nim](https://nim-lang.org) frameworks, libraries and software. Inspired by other [awesome lists](https://github.com/bayandin/awesome-awesomeness). ## 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 * [Nim-Asyncdispatch2](https://github.com/status-im/nim-asyncdispatch2) - Hard fork of Asyncdispatch. [MIT] [**⇑**](#contents "Go to the top") ## Build Systems/Package Management * [ChooseNim](https://github.com/dom96/choosenim) - Installing and switching between Nim versions (à la rustup, pyenv). [MIT] * [Nake](https://github.com/fowlmouth/nake) - Describe your Nim builds as tasks. [MIT] * [Nawabs](https://github.com/Araq/nawabs) - A build system that throws away version numbering in favor of git hashes. [MIT] * [Nimble](https://github.com/nim-lang/nimble) - Nimble can be used as a build system. [BSD] [**⇑**](#contents "Go to the top") ### Byte Size * [nim-bytes2human](https://github.com/juancarlospaco/nim-bytes2human#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 * [nim-crc32](https://github.com/juancarlospaco/nim-crc32#nim-crc32) - CRC32 for Nim, 2 proc, just pass the thing you want to do CRC. [MIT] [**⇑**](#contents "Go to the top") ## Database * [ormin](https://github.com/Araq/ormin) - Prepared SQL statement generator , A lightweight ORM. * [nimongo](https://github.com/SSPkrolik/nimongo) - Pure Nim lang MongoDB driver. http://sspkrolik.github.io/nimongo [MIT] [**⇑**](#contents "Go to the top") ## Date Time * [nim-datetime2human](https://github.com/juancarlospaco/nim-datetime2human#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 * [Arraymancer](https://github.com/mratsim/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](https://gitlab.fragcolor.xyz/fragcolor/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 * [nim-random-font-color](https://github.com/juancarlospaco/nim-random-font-color#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 * [msp430f5510](https://gitlab.com/jalexander8717/msp430f5510-nim) - Run Nim on MSP430f5510 micro-controller (6KB of RAM). * [stm32f3](https://github.com/mwbrown/nim_stm32f3) - Run Nim on STM32F3 micro-controller (16KB of RAM). * [ardunimo](https://github.com/gokr/ardunimo) - Nim wrapper for Arduino + LinkIt ONE SDK by Mediatek. * [ardunimesp](https://gitlab.com/NetaLabTek/Arduimesp) - 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 * [frag](https://github.com/fragworks/frag) - Cross-platform 2D|3D game framework for the Nim programming language. [MIT] * [zengine](https://github.com/zacharycarter/zengine) - 2D | 3D Game development library. * [SDL2](https://github.com/Vladar4/sdl2_nim) - Wrapper for SDL 2. [MIT] * [GLAD](https://github.com/Dav1dde/glad) - Multi-Language Vulkan/GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specs. [MIT] * [nim-glm](https://github.com/stavenko/nim-glm) - Port of the popular glm C++ library to Nim. [MIT] [**⇑**](#contents "Go to the top") ## GUI * [ui](https://github.com/nim-lang/iup) - Wrapper for IUP - Beginnings of what might become Nim's official UI library. * [nim-kdialog](https://github.com/juancarlospaco/nim-kdialog#nim-kdialog) - Nim [Kdialog](https://techbase.kde.org/Development/Tutorials/Shell_Scripting_with_KDE_Dialogs) Qt5 Wrapper for Desktop. [LGPL] * [nimAntTweakBar](https://github.com/krux02/nimAntTweakBar) - Wrapper for AntTweakBar. * [nimx](https://github.com/yglukhov/nimx) - Desktop, Mobile & Web GUI framework in Nim. * [NiGui](https://github.com/trustable-code/NiGui) - cross-platform, desktop GUI toolkit [MIT] [**⇑**](#contents "Go to the top") ## IDE * [Aporia](https://github.com/nim-lang/Aporia) - Text editor to get started with Nim easily (not maintained anymore). * [Editor Integration](https://github.com/nim-lang/Nim/wiki/editor-support) - Official list of editor plugins for Nim. * [Nim Playground](https://play.nim-lang.org/) - Code and run Nim online. [**⇑**](#contents "Go to the top") ## Implementations * [Nim](https://github.com/nim-lang/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](http://nim-lang.org/) * [Nlvm](https://github.com/arnetheduck/nlvm) - LLVM backend for Nim. [MIT] [**⇑**](#contents "Go to the top") ## Macros * [cascade](https://github.com/citycide/cascade) - Method & assignment cascades for Nim, inspired by Smalltalk & Dart. [MIT] * [gara](https://github.com/alehander42/gara) - Macro-based pattern matching library. [MIT] * [pipe](https://github.com/5paceToast/pipe) - Pipe operator for Nim, as seen in functional languages. [MIT] * [unpack](https://github.com/technicallyagd/unpack) - Sequence/object unpacking/destructuring. [MIT] [**⇑**](#contents "Go to the top") ## Package Repositories * [Nim packages](https://github.com/nim-lang/packages) - List of packages for Nimble. * [Nim package directory](https://nimble.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") ## REPL * [INim](https://github.com/AndreiRegiani/INim) - Interactive Nim Shell. [MIT] ## Scripting * [Nimcr](https://github.com/PMunch/nimcr/blob/master/README.md) - Running Nim code with Shebangs. [**⇑**](#contents "Go to the top") ## Services * [Luntic](https://github.com/xxlabaza/luntic) - Lightweight REST in-memory discovery service. [Apache-2.0] [**⇑**](#contents "Go to the top") ## Text Processing * [regex](https://github.com/nitely/nim-regex) - Pure Nim regex engine with linear time match. [MIT] * [glob](https://github.com/citycide/glob) - Pure library for matching file paths against Unix style glob patterns. [MIT] * [nim-datauri](https://github.com/juancarlospaco/nim-datauri#nim-datauri) - Data URI Base64 UTF-8. [LGPL] [**⇑**](#contents "Go to the top") ### Translation * [nim-tinyslation](https://github.com/juancarlospaco/nim-tinyslation#nim-tinyslation) - Text string translation from free online crowdsourced API. [LGPL] ### Template Engines * [smalte](https://github.com/roquie/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 ### Web Frameworks * [Jester](https://github.com/dom96/jester) - The sinatra-like web framework for Nim. Jester provides a DSL for quickly creating web applications in Nim. [MIT] * [Karax](https://github.com/pragmagic/karax) - Framework for developing single page applications in Nim. * [nawak](https://github.com/idlewan/nawak) - Web micro-framework in Nimrod, heavily inspired by jester, flask and the like. [MIT] * [oauth](https://github.com/CORDEA/oauth) - OAuth library for Nim. [Apache-2.0] * [rosencrantz](http://andreaferretti.github.io/rosencrantz/) - DSL to write web servers, inspired by [Spray](http://spray.io/) and its successor [Akka HTTP](http://akka.io). [**⇑**](#contents "Go to the top") ### Parsing HTML * [Nimquery](https://github.com/GULPF/nimquery) - Library for querying HTML using CSS selectors, like Javascript's `document.querySelector`. [MIT] [**⇑**](#contents "Go to the top") ### Generating HTML * [HastyScribe](https://github.com/h3rald/hastyscribe) - Self-contained markdown compiler generating self-contained HTML documents. https://h3rald.com/hastyscribe [**⇑**](#contents "Go to the top") # Development Tools ## Binding Generators * [Nimpy](https://github.com/yglukhov/nimpy) - Gen Python wrappers, call python from nim. [MIT] * [Pymod](https://github.com/jboy/nim-pymod) - Gen Python C-API wrappers. [MIT] [**⇑**](#contents "Go to the top") ## Command-Line Interface Automation * [cligen](https://github.com/c-blake/cligen) - Infer & generate command-line interace/option/argument parsers [MIT] * [docopt.nim](https://github.com/docopt/docopt.nim) - Command-line args parser [MIT] * [commandeer](https://github.com/fenekku/commandeer) - Provides a small command line parsing DSL (domain specific language) [MIT] [**⇑**](#contents "Go to the top") # Resources ## Books * [Nim in Action](https://www.manning.com/books/nim-in-action) - Nim's first book * [Nim Days](https://github.com/xmonader/nimdays) - 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") ## Blogs * [Nim Blog](http://nim-lang.org/blog.html) - Official Nim blog. * [Goran Krampe](http://goran.krampe.se/nim/) - Wrapping C, arduino, performance, links. * [HookRace](https://hookrace.net/blog/nim/) - Blog with multiple articles on Nim. * [Rants from the Ballmer Peak](https://gradha.github.io/tags/nim.html) - Posts on Nim and other languages. * [Yuriy Glukhov's blog](https://yglukhov.github.io/) - Making and shipping a game in Nim * [Araq's Musings](https://nim-lang.org/araq) - Blog on Nim from the creator himself. [**⇑**](#contents "Go to the top") ## Community * [The Nim forum](http://forum.nim-lang.org/) * [The Nim IRC channel](http://webchat.freenode.net/?channels=nim) * [The Nim Gitter channel](https://gitter.im/nim-lang/Nim) * [The Nim mailing list](http://www.freelists.org/list/nim-dev) * [The Nim SubReddit](http://reddit.com/r/nim) * [The Nim Telegram](https://t.me/nim_lang) * [The Nim Telegram on Spanish](https://t.me/NimArgentina) [**⇑**](#contents "Go to the top") ## Websites * [Nim Basics](https://narimiran.github.io/nim-basics/) - Tutorial for beginners and people just starting with Nim. * [How I start](https://howistart.org/posts/nim) - Great guide going from 0 to a bf interpreter and then a bf to Nim compiler. * [Learn Nim in Y minutes](https://learnxinyminutes.com/docs/nim/) - Whirlwind tour. * [Nim by Example](https://nim-by-example.github.io) - Series of pages and examples for learning the Nim programming language. * [Nim for Python programmers](https://github.com/nim-lang/Nim/wiki/Nim-for-Python-Programmers) - Guide to Nim for people with experience in Python. * [Rosettacode:Nim](https://rosettacode.org/wiki/Category:Nim) - 100s of solutions for various tasks using Nim (Implementations available in other languages as well). [**⇑**](#contents "Go to the top") # Contributing Contributions are very welcome! Please have a look at [CONTRIBUTING](https://github.com/VPashkov/awesome-nim/blob/master/CONTRIBUTING.md) for guidelines. [**⇑**](#contents "Go to the top") [nim.md Github](https://github.com/VPashkov/awesome-nim )