398 lines
17 KiB
HTML
398 lines
17 KiB
HTML
<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 & 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 PyTorch’s native backend,
|
||
combining Nim’s speed, productivity and portability with PyTorch’s
|
||
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 Nim’s 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 & 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. Nim’s
|
||
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
|
||
& assignment cascades for Nim, inspired by Smalltalk & 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 Javascript’s
|
||
<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 &
|
||
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> - Nim’s 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 Glukhov’s blog</a> -
|
||
Making and shipping a game in Nim</li>
|
||
<li><a href="https://nim-lang.org/araq">Araq’s 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>
|