Files
awesome-awesomeness/html/nim.html
2025-07-18 23:13:11 +02:00

398 lines
17 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<h1 id="deprecated---use-curated-packages-instead.">DEPRECATED - Use <a
href="https://github.com/nim-lang/Nim/wiki/Curated-Packages">Curated
Packages</a> instead.</h1>
<h1 id="awesome-nim-awesome">Awesome Nim <a
href="https://awesome.re"><img src="https://awesome.re/badge.svg"
alt="Awesome" /></a></h1>
<p>A curated list of awesome <a href="https://nim-lang.org">Nim</a>
frameworks, libraries and software. Inspired by other <a
href="https://github.com/bayandin/awesome-awesomeness">awesome
lists</a>.</p>
<h2 id="contents">Contents</h2>
<details open>
<summary title="Hide/Show">
Table of contents
</summary>
<ul>
<li><a href="#async-processing">Async Processing</a></li>
<li><a href="#build-systemspackage-management">Build Systems/Package
Management</a></li>
<li><a href="#byte-size">Byte Size</a></li>
<li><a href="#checksums">CheckSums</a></li>
<li><a href="#database">Database</a></li>
<li><a href="#date-time">Date Time</a></li>
<li><a href="#deep-learning">Deep Learning</a></li>
<li><a href="#design">Design</a></li>
<li><a href="#embedded">Embedded</a></li>
<li><a href="#game-development">Game Development</a></li>
<li><a href="#gui">GUI</a></li>
<li><a href="#ide">IDE</a></li>
<li><a href="#implementations">Implementations</a></li>
<li><a href="#macros">Macros</a></li>
<li><a href="#package-repositories">Package Repositories</a></li>
<li><a href="#repl">REPL</a></li>
<li><a href="#scripting">Scripting</a></li>
<li><a href="#services">Services</a></li>
<li><a href="#text-processing">Text Processing</a>
<ul>
<li><a href="#translation">Translation</a></li>
<li><a href="#template-engines">Template Engines</a></li>
</ul></li>
<li><a href="#web">Web</a>
<ul>
<li><a href="#web-frameworks">Web Frameworks</a></li>
<li><a href="#parsing-html">Parsing HTML</a></li>
<li><a href="#generating-html">Generating HTML</a></li>
</ul></li>
<li><a href="#development-tools">Development Tools</a>
<ul>
<li><a href="#binding-generators">Binding Generators</a></li>
<li><a href="#command-line-interface-automation">Command-Line Interface
Automation</a></li>
</ul></li>
<li><a href="#resources">Resources</a>
<ul>
<li><a href="#books">Books</a></li>
<li><a href="#blogs">Blogs</a></li>
<li><a href="#community">Community</a></li>
<li><a href="#websites">Websites</a></li>
</ul></li>
<li><a href="#contributing">Contributing</a></li>
</ul>
</details>
<h2 id="async-processing">Async processing</h2>
<ul>
<li><a
href="https://github.com/status-im/nim-asyncdispatch2">Nim-Asyncdispatch2</a>
- Hard fork of Asyncdispatch. [MIT]</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h2 id="build-systemspackage-management">Build Systems/Package
Management</h2>
<ul>
<li><a href="https://github.com/dom96/choosenim">ChooseNim</a> -
Installing and switching between Nim versions (à la rustup, pyenv).
[MIT]</li>
<li><a href="https://github.com/fowlmouth/nake">Nake</a> - Describe your
Nim builds as tasks. [MIT]</li>
<li><a href="https://github.com/Araq/nawabs">Nawabs</a> - A build system
that throws away version numbering in favor of git hashes. [MIT]</li>
<li><a href="https://github.com/nim-lang/nimble">Nimble</a> - Nimble can
be used as a build system. [BSD]</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h3 id="byte-size">Byte Size</h3>
<ul>
<li><a
href="https://github.com/juancarlospaco/nim-bytes2human#nim-bytes2human">nim-bytes2human</a>
- Calculate all Byte units from an integer, with precision from Bytes to
Yottabytes, and return a human friendly string representation.
[LGPL]</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h2 id="checksums">Checksums</h2>
<ul>
<li><a
href="https://github.com/juancarlospaco/nim-crc32#nim-crc32">nim-crc32</a>
- CRC32 for Nim, 2 proc, just pass the thing you want to do CRC.
[MIT]</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h2 id="database">Database</h2>
<ul>
<li><a href="https://github.com/Araq/ormin">ormin</a> - Prepared SQL
statement generator , A lightweight ORM.</li>
<li><a href="https://github.com/SSPkrolik/nimongo">nimongo</a> - Pure
Nim lang MongoDB driver. http://sspkrolik.github.io/nimongo [MIT]</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h2 id="date-time">Date Time</h2>
<ul>
<li><a
href="https://github.com/juancarlospaco/nim-datetime2human#nim-datetime2human">nim-datetime2human</a>
- Calculate date &amp; time with precision from seconds to millenniums.
Human friendly date time as string. ISO-8601. [LGPL]</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h2 id="deep-learning">Deep Learning</h2>
<ul>
<li><a href="https://github.com/mratsim/Arraymancer">Arraymancer</a> - A
fast, ergonomic and portable tensor library in Nim with a deep learning
focus for CPU, GPU, OpenCL and embedded devices. [Apache-2.0]</li>
<li><a
href="https://gitlab.fragcolor.xyz/fragcolor/nimtorch">NimTorch</a> -
PyTorch - Python + Nim. A Nim front-end to PyTorchs native backend,
combining Nims speed, productivity and portability with PyTorchs
latest implementations. [MIT]</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h2 id="design">Design</h2>
<ul>
<li><a
href="https://github.com/juancarlospaco/nim-random-font-color#nim-random-font-color">nim-random-font-color</a>
- Random curated Fonts, pastel Colors and Seamless CSS3 Patterns for
your UI/UX design, design for non-designers, poors man design.
[LGPL]</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h2 id="embedded">Embedded</h2>
<ul>
<li><a
href="https://gitlab.com/jalexander8717/msp430f5510-nim">msp430f5510</a>
- Run Nim on MSP430f5510 micro-controller (6KB of RAM).</li>
<li><a href="https://github.com/mwbrown/nim_stm32f3">stm32f3</a> - Run
Nim on STM32F3 micro-controller (16KB of RAM).</li>
<li><a href="https://github.com/gokr/ardunimo">ardunimo</a> - Nim
wrapper for Arduino + LinkIt ONE SDK by Mediatek.</li>
<li><a href="https://gitlab.com/NetaLabTek/Arduimesp">ardunimesp</a> -
Nim wrapper for Arduino ESP8266 framework + A tool for flash, compile
and make the nim project into an Arduino project.</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h2 id="game-development">Game Development</h2>
<ul>
<li><a href="https://github.com/fragworks/frag">frag</a> -
Cross-platform 2D|3D game framework for the Nim programming language.
[MIT]</li>
<li><a href="https://github.com/zacharycarter/zengine">zengine</a> - 2D
| 3D Game development library.</li>
<li><a href="https://github.com/Vladar4/sdl2_nim">SDL2</a> - Wrapper for
SDL 2. [MIT]</li>
<li><a href="https://github.com/Dav1dde/glad">GLAD</a> - Multi-Language
Vulkan/GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specs.
[MIT]</li>
<li><a href="https://github.com/stavenko/nim-glm">nim-glm</a> - Port of
the popular glm C++ library to Nim. [MIT]</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h2 id="gui">GUI</h2>
<ul>
<li><a href="https://github.com/nim-lang/iup">ui</a> - Wrapper for IUP -
Beginnings of what might become Nims official UI library.</li>
<li><a
href="https://github.com/juancarlospaco/nim-kdialog#nim-kdialog">nim-kdialog</a>
- Nim <a
href="https://techbase.kde.org/Development/Tutorials/Shell_Scripting_with_KDE_Dialogs">Kdialog</a>
Qt5 Wrapper for Desktop. [LGPL]</li>
<li><a
href="https://github.com/krux02/nimAntTweakBar">nimAntTweakBar</a> -
Wrapper for AntTweakBar.</li>
<li><a href="https://github.com/yglukhov/nimx">nimx</a> - Desktop,
Mobile &amp; Web GUI framework in Nim.</li>
<li><a href="https://github.com/trustable-code/NiGui">NiGui</a> -
cross-platform, desktop GUI toolkit [MIT]</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h2 id="ide">IDE</h2>
<ul>
<li><a href="https://github.com/nim-lang/Aporia">Aporia</a> - Text
editor to get started with Nim easily (not maintained anymore).</li>
<li><a href="https://github.com/nim-lang/Nim/wiki/editor-support">Editor
Integration</a> - Official list of editor plugins for Nim.</li>
<li><a href="https://play.nim-lang.org/">Nim Playground</a> - Code and
run Nim online.</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h2 id="implementations">Implementations</h2>
<ul>
<li><a href="https://github.com/nim-lang/Nim">Nim</a> - Nim (formerly
known as “Nimrod”) is a compiled, garbage-collected systems programming
language which has an excellent productivity/performance ratio. Nims
design focuses on efficiency, expressiveness, elegance (in the order of
priority). [MIT] <a href="http://nim-lang.org/">website</a></li>
<li><a href="https://github.com/arnetheduck/nlvm">Nlvm</a> - LLVM
backend for Nim. [MIT]</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h2 id="macros">Macros</h2>
<ul>
<li><a href="https://github.com/citycide/cascade">cascade</a> - Method
&amp; assignment cascades for Nim, inspired by Smalltalk &amp; Dart.
[MIT]</li>
<li><a href="https://github.com/alehander42/gara">gara</a> - Macro-based
pattern matching library. [MIT]</li>
<li><a href="https://github.com/5paceToast/pipe">pipe</a> - Pipe
operator for Nim, as seen in functional languages. [MIT]</li>
<li><a href="https://github.com/technicallyagd/unpack">unpack</a> -
Sequence/object unpacking/destructuring. [MIT]</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h2 id="package-repositories">Package Repositories</h2>
<ul>
<li><a href="https://github.com/nim-lang/packages">Nim packages</a> -
List of packages for Nimble.</li>
<li><a href="https://nimble.directory/">Nim package directory</a> - This
service allows you to explore Nim packages known to Nimble. It tests
package installation and generates documentation using “nim doc”.</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h2 id="repl">REPL</h2>
<ul>
<li><a href="https://github.com/AndreiRegiani/INim">INim</a> -
Interactive Nim Shell. [MIT]</li>
</ul>
<h2 id="scripting">Scripting</h2>
<ul>
<li><a
href="https://github.com/PMunch/nimcr/blob/master/README.md">Nimcr</a> -
Running Nim code with Shebangs.</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h2 id="services">Services</h2>
<ul>
<li><a href="https://github.com/xxlabaza/luntic">Luntic</a> -
Lightweight REST in-memory discovery service. [Apache-2.0]</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h2 id="text-processing">Text Processing</h2>
<ul>
<li><a href="https://github.com/nitely/nim-regex">regex</a> - Pure Nim
regex engine with linear time match. [MIT]</li>
<li><a href="https://github.com/citycide/glob">glob</a> - Pure library
for matching file paths against Unix style glob patterns. [MIT]</li>
<li><a
href="https://github.com/juancarlospaco/nim-datauri#nim-datauri">nim-datauri</a>
- Data URI Base64 UTF-8. [LGPL]</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h3 id="translation">Translation</h3>
<ul>
<li><a
href="https://github.com/juancarlospaco/nim-tinyslation#nim-tinyslation">nim-tinyslation</a>
- Text string translation from free online crowdsourced API. [LGPL]</li>
</ul>
<h3 id="template-engines">Template Engines</h3>
<ul>
<li><a href="https://github.com/roquie/smalte">smalte</a> - Is a dead
simple and lightweight template engine. Specially designed for configure
application before start in Docker. [MIT]</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h2 id="web">Web</h2>
<h3 id="web-frameworks">Web Frameworks</h3>
<ul>
<li><a href="https://github.com/dom96/jester">Jester</a> - The
sinatra-like web framework for Nim. Jester provides a DSL for quickly
creating web applications in Nim. [MIT]</li>
<li><a href="https://github.com/pragmagic/karax">Karax</a> - Framework
for developing single page applications in Nim.</li>
<li><a href="https://github.com/idlewan/nawak">nawak</a> - Web
micro-framework in Nimrod, heavily inspired by jester, flask and the
like. [MIT]</li>
<li><a href="https://github.com/CORDEA/oauth">oauth</a> - OAuth library
for Nim. [Apache-2.0]</li>
<li><a
href="http://andreaferretti.github.io/rosencrantz/">rosencrantz</a> -
DSL to write web servers, inspired by <a
href="http://spray.io/">Spray</a> and its successor <a
href="http://akka.io">Akka HTTP</a>.</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h3 id="parsing-html">Parsing HTML</h3>
<ul>
<li><a href="https://github.com/GULPF/nimquery">Nimquery</a> - Library
for querying HTML using CSS selectors, like Javascripts
<code>document.querySelector</code>. [MIT]</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h3 id="generating-html">Generating HTML</h3>
<ul>
<li><a href="https://github.com/h3rald/hastyscribe">HastyScribe</a> -
Self-contained markdown compiler generating self-contained HTML
documents. https://h3rald.com/hastyscribe</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h1 id="development-tools">Development Tools</h1>
<h2 id="binding-generators">Binding Generators</h2>
<ul>
<li><a href="https://github.com/yglukhov/nimpy">Nimpy</a> - Gen Python
wrappers, call python from nim. [MIT]</li>
<li><a href="https://github.com/jboy/nim-pymod">Pymod</a> - Gen Python
C-API wrappers. [MIT]</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h2 id="command-line-interface-automation">Command-Line Interface
Automation</h2>
<ul>
<li><a href="https://github.com/c-blake/cligen">cligen</a> - Infer &amp;
generate command-line interace/option/argument parsers [MIT]</li>
<li><a href="https://github.com/docopt/docopt.nim">docopt.nim</a> -
Command-line args parser [MIT]</li>
<li><a href="https://github.com/fenekku/commandeer">commandeer</a> -
Provides a small command line parsing DSL (domain specific language)
[MIT]</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h1 id="resources">Resources</h1>
<h2 id="books">Books</h2>
<ul>
<li><a href="https://www.manning.com/books/nim-in-action">Nim in
Action</a> - Nims first book</li>
<li><a href="https://github.com/xmonader/nimdays">Nim Days</a> - 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.</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h2 id="blogs">Blogs</h2>
<ul>
<li><a href="http://nim-lang.org/blog.html">Nim Blog</a> - Official Nim
blog.</li>
<li><a href="http://goran.krampe.se/nim/">Goran Krampe</a> - Wrapping C,
arduino, performance, links.</li>
<li><a href="https://hookrace.net/blog/nim/">HookRace</a> - Blog with
multiple articles on Nim.</li>
<li><a href="https://gradha.github.io/tags/nim.html">Rants from the
Ballmer Peak</a> - Posts on Nim and other languages.</li>
<li><a href="https://yglukhov.github.io/">Yuriy Glukhovs blog</a> -
Making and shipping a game in Nim</li>
<li><a href="https://nim-lang.org/araq">Araqs Musings</a> - Blog on Nim
from the creator himself.</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h2 id="community">Community</h2>
<ul>
<li><a href="http://forum.nim-lang.org/">The Nim forum</a></li>
<li><a href="http://webchat.freenode.net/?channels=nim">The Nim IRC
channel</a></li>
<li><a href="https://gitter.im/nim-lang/Nim">The Nim Gitter
channel</a></li>
<li><a href="http://www.freelists.org/list/nim-dev">The Nim mailing
list</a></li>
<li><a href="http://reddit.com/r/nim">The Nim SubReddit</a></li>
<li><a href="https://t.me/nim_lang">The Nim Telegram</a></li>
<li><a href="https://t.me/NimArgentina">The Nim Telegram on
Spanish</a></li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h2 id="websites">Websites</h2>
<ul>
<li><a href="https://narimiran.github.io/nim-basics/">Nim Basics</a> -
Tutorial for beginners and people just starting with Nim.</li>
<li><a href="https://howistart.org/posts/nim">How I start</a> - Great
guide going from 0 to a bf interpreter and then a bf to Nim
compiler.</li>
<li><a href="https://learnxinyminutes.com/docs/nim/">Learn Nim in Y
minutes</a> - Whirlwind tour.</li>
<li><a href="https://nim-by-example.github.io">Nim by Example</a> -
Series of pages and examples for learning the Nim programming
language.</li>
<li><a
href="https://github.com/nim-lang/Nim/wiki/Nim-for-Python-Programmers">Nim
for Python programmers</a> - Guide to Nim for people with experience in
Python.</li>
<li><a
href="https://rosettacode.org/wiki/Category:Nim">Rosettacode:Nim</a> -
100s of solutions for various tasks using Nim (Implementations available
in other languages as well).</li>
</ul>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<h1 id="contributing">Contributing</h1>
<p>Contributions are very welcome!</p>
<p>Please have a look at <a
href="https://github.com/VPashkov/awesome-nim/blob/master/CONTRIBUTING.md">CONTRIBUTING</a>
for guidelines.</p>
<p><a href="#contents" title="Go to the top"><strong></strong></a></p>
<p><a href="https://github.com/VPashkov/awesome-nim">nim.md
Github</a></p>