├── CONTRIBUTING.md
├── LICENSE.md
└── README.md
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contribution Guidelines
2 |
3 | Please ensure your pull request adheres to the following guidelines:
4 |
5 | * Please search previous suggestions before making a new one, as yours may be a duplicate.
6 | * Please make an individual pull request for each suggestion.
7 | * Use the following format: \[RESOURCE\]\(REPO-LINK\) - DESCRIPTION. [LICENCE] \[website\]\(WEB-LINK\)
8 | * Keep descriptions short and simple.
9 | * End all descriptions with a full stop/period.
10 | * Make sure your text editor is set to remove trailing whitespace.
11 | * Order projects alphabetically within each category.
12 | * Check your spelling and grammar.
13 | * New categories, or improvements to the existing categorisation are welcome.
14 |
15 | ## Pull requests workflow
16 |
17 | Please, submit one pull requests with one link per PR. If you want to add several links, you should create PR for each links, unless all of the proposed projects are belong to the same category. Pull request should have meaningful description what this project do, why do you want to add it to the list and any other info which might be useful. This will help maintainers with the review process.
18 |
19 | ## Quality standard
20 |
21 | To stay on the list, projects should follow these quality standards:
22 |
23 | * Generally useful to the community
24 | * Actively maintained (even if that just means acknowledging open issues when they arise)
25 | * Stable
26 | * Documented
27 | * Tests
28 |
29 | Thank you for your suggestions!
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | CC0 1.0 Universal
2 |
3 | Statement of Purpose
4 |
5 | The laws of most jurisdictions throughout the world automatically confer
6 | exclusive Copyright and Related Rights (defined below) upon the creator and
7 | subsequent owner(s) (each and all, an "owner") of an original work of
8 | authorship and/or a database (each, a "Work").
9 |
10 | Certain owners wish to permanently relinquish those rights to a Work for the
11 | purpose of contributing to a commons of creative, cultural and scientific
12 | works ("Commons") that the public can reliably and without fear of later
13 | claims of infringement build upon, modify, incorporate in other works, reuse
14 | and redistribute as freely as possible in any form whatsoever and for any
15 | purposes, including without limitation commercial purposes. These owners may
16 | contribute to the Commons to promote the ideal of a free culture and the
17 | further production of creative, cultural and scientific works, or to gain
18 | reputation or greater distribution for their Work in part through the use and
19 | efforts of others.
20 |
21 | For these and/or other purposes and motivations, and without any expectation
22 | of additional consideration or compensation, the person associating CC0 with a
23 | Work (the "Affirmer"), to the extent that he or she is an owner of Copyright
24 | and Related Rights in the Work, voluntarily elects to apply CC0 to the Work
25 | and publicly distribute the Work under its terms, with knowledge of his or her
26 | Copyright and Related Rights in the Work and the meaning and intended legal
27 | effect of CC0 on those rights.
28 |
29 | 1. Copyright and Related Rights. A Work made available under CC0 may be
30 | protected by copyright and related or neighboring rights ("Copyright and
31 | Related Rights"). Copyright and Related Rights include, but are not limited
32 | to, the following:
33 |
34 | i. the right to reproduce, adapt, distribute, perform, display, communicate,
35 | and translate a Work;
36 |
37 | ii. moral rights retained by the original author(s) and/or performer(s);
38 |
39 | iii. publicity and privacy rights pertaining to a person's image or likeness
40 | depicted in a Work;
41 |
42 | iv. rights protecting against unfair competition in regards to a Work,
43 | subject to the limitations in paragraph 4(a), below;
44 |
45 | v. rights protecting the extraction, dissemination, use and reuse of data in
46 | a Work;
47 |
48 | vi. database rights (such as those arising under Directive 96/9/EC of the
49 | European Parliament and of the Council of 11 March 1996 on the legal
50 | protection of databases, and under any national implementation thereof,
51 | including any amended or successor version of such directive); and
52 |
53 | vii. other similar, equivalent or corresponding rights throughout the world
54 | based on applicable law or treaty, and any national implementations thereof.
55 |
56 | 2. Waiver. To the greatest extent permitted by, but not in contravention of,
57 | applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
58 | unconditionally waives, abandons, and surrenders all of Affirmer's Copyright
59 | and Related Rights and associated claims and causes of action, whether now
60 | known or unknown (including existing as well as future claims and causes of
61 | action), in the Work (i) in all territories worldwide, (ii) for the maximum
62 | duration provided by applicable law or treaty (including future time
63 | extensions), (iii) in any current or future medium and for any number of
64 | copies, and (iv) for any purpose whatsoever, including without limitation
65 | commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes
66 | the Waiver for the benefit of each member of the public at large and to the
67 | detriment of Affirmer's heirs and successors, fully intending that such Waiver
68 | shall not be subject to revocation, rescission, cancellation, termination, or
69 | any other legal or equitable action to disrupt the quiet enjoyment of the Work
70 | by the public as contemplated by Affirmer's express Statement of Purpose.
71 |
72 | 3. Public License Fallback. Should any part of the Waiver for any reason be
73 | judged legally invalid or ineffective under applicable law, then the Waiver
74 | shall be preserved to the maximum extent permitted taking into account
75 | Affirmer's express Statement of Purpose. In addition, to the extent the Waiver
76 | is so judged Affirmer hereby grants to each affected person a royalty-free,
77 | non transferable, non sublicensable, non exclusive, irrevocable and
78 | unconditional license to exercise Affirmer's Copyright and Related Rights in
79 | the Work (i) in all territories worldwide, (ii) for the maximum duration
80 | provided by applicable law or treaty (including future time extensions), (iii)
81 | in any current or future medium and for any number of copies, and (iv) for any
82 | purpose whatsoever, including without limitation commercial, advertising or
83 | promotional purposes (the "License"). The License shall be deemed effective as
84 | of the date CC0 was applied by Affirmer to the Work. Should any part of the
85 | License for any reason be judged legally invalid or ineffective under
86 | applicable law, such partial invalidity or ineffectiveness shall not
87 | invalidate the remainder of the License, and in such case Affirmer hereby
88 | affirms that he or she will not (i) exercise any of his or her remaining
89 | Copyright and Related Rights in the Work or (ii) assert any associated claims
90 | and causes of action with respect to the Work, in either case contrary to
91 | Affirmer's express Statement of Purpose.
92 |
93 | 4. Limitations and Disclaimers.
94 |
95 | a. No trademark or patent rights held by Affirmer are waived, abandoned,
96 | surrendered, licensed or otherwise affected by this document.
97 |
98 | b. Affirmer offers the Work as-is and makes no representations or warranties
99 | of any kind concerning the Work, express, implied, statutory or otherwise,
100 | including without limitation warranties of title, merchantability, fitness
101 | for a particular purpose, non infringement, or the absence of latent or
102 | other defects, accuracy, or the present or absence of errors, whether or not
103 | discoverable, all to the greatest extent permissible under applicable law.
104 |
105 | c. Affirmer disclaims responsibility for clearing rights of other persons
106 | that may apply to the Work or any use thereof, including without limitation
107 | any person's Copyright and Related Rights in the Work. Further, Affirmer
108 | disclaims responsibility for obtaining any necessary consents, permissions
109 | or other rights required for any use of the Work.
110 |
111 | d. Affirmer understands and acknowledges that Creative Commons is not a
112 | party to this document and has no duty or obligation with respect to this
113 | CC0 or use of the Work.
114 |
115 | For more information, please see
116 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # DEPRECATED - Use [Curated Packages](https://github.com/nim-lang/Nim/wiki/Curated-Packages) instead.
2 |
3 | # Awesome Nim [](https://awesome.re)
4 |
5 | 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).
6 |
7 | ## Contents
8 |
9 |
10 | Table of contents
11 |
12 | - [Async Processing](#async-processing)
13 | - [Build Systems/Package Management](#build-systemspackage-management)
14 | - [Byte Size](#byte-size)
15 | - [CheckSums](#checksums)
16 | - [Database](#database)
17 | - [Date Time](#date-time)
18 | - [Deep Learning](#deep-learning)
19 | - [Design](#design)
20 | - [Embedded](#embedded)
21 | - [Game Development](#game-development)
22 | - [GUI](#gui)
23 | - [IDE](#ide)
24 | - [Implementations](#implementations)
25 | - [Macros](#macros)
26 | - [Package Repositories](#package-repositories)
27 | - [REPL](#repl)
28 | - [Scripting](#scripting)
29 | - [Services](#services)
30 | - [Text Processing](#text-processing)
31 | - [Translation](#translation)
32 | - [Template Engines](#template-engines)
33 | - [Web](#web)
34 | - [Web Frameworks](#web-frameworks)
35 | - [Parsing HTML](#parsing-html)
36 | - [Generating HTML](#generating-html)
37 | - [Development Tools](#development-tools)
38 | - [Binding Generators](#binding-generators)
39 | - [Command-Line Interface Automation](#command-line-interface-automation)
40 | - [Resources](#resources)
41 | - [Books](#books)
42 | - [Blogs](#blogs)
43 | - [Community](#community)
44 | - [Websites](#websites)
45 | - [Contributing](#contributing)
46 |
47 |
48 |
49 | ## Async processing
50 | * [Nim-Asyncdispatch2](https://github.com/status-im/nim-asyncdispatch2) - Hard fork of Asyncdispatch. [MIT]
51 |
52 | [**⇑**](#contents "Go to the top")
53 |
54 | ## Build Systems/Package Management
55 |
56 | * [ChooseNim](https://github.com/dom96/choosenim) - Installing and switching between Nim versions (à la rustup, pyenv). [MIT]
57 | * [Nake](https://github.com/fowlmouth/nake) - Describe your Nim builds as tasks. [MIT]
58 | * [Nawabs](https://github.com/Araq/nawabs) - A build system that throws away version numbering in favor of git hashes. [MIT]
59 | * [Nimble](https://github.com/nim-lang/nimble) - Nimble can be used as a build system. [BSD]
60 |
61 | [**⇑**](#contents "Go to the top")
62 |
63 | ### Byte Size
64 |
65 | * [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]
66 |
67 | [**⇑**](#contents "Go to the top")
68 |
69 | ## Checksums
70 |
71 | * [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]
72 |
73 | [**⇑**](#contents "Go to the top")
74 |
75 | ## Database
76 |
77 | * [ormin](https://github.com/Araq/ormin) - Prepared SQL statement generator , A lightweight ORM.
78 | * [nimongo](https://github.com/SSPkrolik/nimongo) - Pure Nim lang MongoDB driver. http://sspkrolik.github.io/nimongo [MIT]
79 |
80 | [**⇑**](#contents "Go to the top")
81 |
82 | ## Date Time
83 |
84 | * [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]
85 |
86 | [**⇑**](#contents "Go to the top")
87 |
88 | ## Deep Learning
89 |
90 | * [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]
91 | * [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]
92 |
93 | [**⇑**](#contents "Go to the top")
94 |
95 | ## Design
96 |
97 | * [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]
98 |
99 | [**⇑**](#contents "Go to the top")
100 |
101 | ## Embedded
102 |
103 | * [msp430f5510](https://gitlab.com/jalexander8717/msp430f5510-nim) - Run Nim on MSP430f5510 micro-controller (6KB of RAM).
104 | * [stm32f3](https://github.com/mwbrown/nim_stm32f3) - Run Nim on STM32F3 micro-controller (16KB of RAM).
105 | * [ardunimo](https://github.com/gokr/ardunimo) - Nim wrapper for Arduino + LinkIt ONE SDK by Mediatek.
106 | * [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.
107 |
108 | [**⇑**](#contents "Go to the top")
109 |
110 | ## Game Development
111 |
112 | * [frag](https://github.com/fragworks/frag) - Cross-platform 2D|3D game framework for the Nim programming language. [MIT]
113 | * [zengine](https://github.com/zacharycarter/zengine) - 2D | 3D Game development library.
114 | * [SDL2](https://github.com/Vladar4/sdl2_nim) - Wrapper for SDL 2. [MIT]
115 | * [GLAD](https://github.com/Dav1dde/glad) - Multi-Language Vulkan/GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specs. [MIT]
116 | * [nim-glm](https://github.com/stavenko/nim-glm) - Port of the popular glm C++ library to Nim. [MIT]
117 |
118 | [**⇑**](#contents "Go to the top")
119 |
120 | ## GUI
121 |
122 | * [ui](https://github.com/nim-lang/iup) - Wrapper for IUP - Beginnings of what might become Nim's official UI library.
123 | * [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]
124 | * [nimAntTweakBar](https://github.com/krux02/nimAntTweakBar) - Wrapper for AntTweakBar.
125 | * [nimx](https://github.com/yglukhov/nimx) - Desktop, Mobile & Web GUI framework in Nim.
126 | * [NiGui](https://github.com/trustable-code/NiGui) - cross-platform, desktop GUI toolkit [MIT]
127 |
128 | [**⇑**](#contents "Go to the top")
129 |
130 | ## IDE
131 |
132 | * [Aporia](https://github.com/nim-lang/Aporia) - Text editor to get started with Nim easily (not maintained anymore).
133 | * [Editor Integration](https://github.com/nim-lang/Nim/wiki/editor-support) - Official list of editor plugins for Nim.
134 | * [Nim Playground](https://play.nim-lang.org/) - Code and run Nim online.
135 |
136 | [**⇑**](#contents "Go to the top")
137 |
138 | ## Implementations
139 |
140 | * [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/)
141 | * [Nlvm](https://github.com/arnetheduck/nlvm) - LLVM backend for Nim. [MIT]
142 |
143 | [**⇑**](#contents "Go to the top")
144 |
145 | ## Macros
146 |
147 | * [cascade](https://github.com/citycide/cascade) - Method & assignment cascades for Nim, inspired by Smalltalk & Dart. [MIT]
148 | * [gara](https://github.com/alehander42/gara) - Macro-based pattern matching library. [MIT]
149 | * [pipe](https://github.com/5paceToast/pipe) - Pipe operator for Nim, as seen in functional languages. [MIT]
150 | * [unpack](https://github.com/technicallyagd/unpack) - Sequence/object unpacking/destructuring. [MIT]
151 |
152 | [**⇑**](#contents "Go to the top")
153 |
154 | ## Package Repositories
155 |
156 | * [Nim packages](https://github.com/nim-lang/packages) - List of packages for Nimble.
157 | * [Nim package directory](https://nimble.directory/) - This service allows you to explore Nim packages known to Nimble.
158 | It tests package installation and generates documentation using "nim doc".
159 |
160 | [**⇑**](#contents "Go to the top")
161 |
162 | ## REPL
163 |
164 | * [INim](https://github.com/AndreiRegiani/INim) - Interactive Nim Shell. [MIT]
165 |
166 | ## Scripting
167 |
168 | * [Nimcr](https://github.com/PMunch/nimcr/blob/master/README.md) - Running Nim code with Shebangs.
169 |
170 | [**⇑**](#contents "Go to the top")
171 |
172 | ## Services
173 |
174 | * [Luntic](https://github.com/xxlabaza/luntic) - Lightweight REST in-memory discovery service. [Apache-2.0]
175 |
176 | [**⇑**](#contents "Go to the top")
177 |
178 | ## Text Processing
179 |
180 | * [regex](https://github.com/nitely/nim-regex) - Pure Nim regex engine with linear time match. [MIT]
181 | * [glob](https://github.com/citycide/glob) - Pure library for matching file paths against Unix style glob patterns. [MIT]
182 | * [nim-datauri](https://github.com/juancarlospaco/nim-datauri#nim-datauri) - Data URI Base64 UTF-8. [LGPL]
183 |
184 | [**⇑**](#contents "Go to the top")
185 |
186 | ### Translation
187 |
188 | * [nim-tinyslation](https://github.com/juancarlospaco/nim-tinyslation#nim-tinyslation) - Text string translation from free online crowdsourced API. [LGPL]
189 |
190 | ### Template Engines
191 |
192 | * [smalte](https://github.com/roquie/smalte) - Is a dead simple and lightweight template engine. Specially designed for configure application before start in Docker. [MIT]
193 |
194 | [**⇑**](#contents "Go to the top")
195 |
196 | ## Web
197 |
198 | ### Web Frameworks
199 |
200 | * [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]
201 | * [Karax](https://github.com/pragmagic/karax) - Framework for developing single page applications in Nim.
202 | * [nawak](https://github.com/idlewan/nawak) - Web micro-framework in Nimrod, heavily inspired by jester, flask and the like. [MIT]
203 | * [oauth](https://github.com/CORDEA/oauth) - OAuth library for Nim. [Apache-2.0]
204 | * [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).
205 |
206 | [**⇑**](#contents "Go to the top")
207 |
208 | ### Parsing HTML
209 |
210 | * [Nimquery](https://github.com/GULPF/nimquery) - Library for
211 | querying HTML using CSS selectors, like Javascript's
212 | `document.querySelector`. [MIT]
213 |
214 | [**⇑**](#contents "Go to the top")
215 |
216 | ### Generating HTML
217 |
218 | * [HastyScribe](https://github.com/h3rald/hastyscribe) - Self-contained markdown compiler generating self-contained HTML documents. https://h3rald.com/hastyscribe
219 |
220 | [**⇑**](#contents "Go to the top")
221 |
222 | # Development Tools
223 |
224 | ## Binding Generators
225 |
226 | * [Nimpy](https://github.com/yglukhov/nimpy) - Gen Python wrappers, call python from nim. [MIT]
227 | * [Pymod](https://github.com/jboy/nim-pymod) - Gen Python C-API wrappers. [MIT]
228 |
229 | [**⇑**](#contents "Go to the top")
230 |
231 | ## Command-Line Interface Automation
232 |
233 | * [cligen](https://github.com/c-blake/cligen) - Infer & generate command-line interace/option/argument parsers [MIT]
234 | * [docopt.nim](https://github.com/docopt/docopt.nim) - Command-line args parser [MIT]
235 | * [commandeer](https://github.com/fenekku/commandeer) - Provides a small command line parsing DSL (domain specific language) [MIT]
236 |
237 | [**⇑**](#contents "Go to the top")
238 |
239 | # Resources
240 |
241 | ## Books
242 |
243 | * [Nim in Action](https://www.manning.com/books/nim-in-action) - Nim's first book
244 | * [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.
245 |
246 | [**⇑**](#contents "Go to the top")
247 |
248 | ## Blogs
249 |
250 | * [Nim Blog](http://nim-lang.org/blog.html) - Official Nim blog.
251 | * [Goran Krampe](http://goran.krampe.se/nim/) - Wrapping C, arduino, performance, links.
252 | * [HookRace](https://hookrace.net/blog/nim/) - Blog with multiple articles on Nim.
253 | * [Rants from the Ballmer Peak](https://gradha.github.io/tags/nim.html) - Posts on Nim and other languages.
254 | * [Yuriy Glukhov's blog](https://yglukhov.github.io/) - Making and shipping a game in Nim
255 | * [Araq's Musings](https://nim-lang.org/araq) - Blog on Nim from the creator himself.
256 |
257 | [**⇑**](#contents "Go to the top")
258 |
259 | ## Community
260 |
261 | * [The Nim forum](http://forum.nim-lang.org/)
262 | * [The Nim IRC channel](http://webchat.freenode.net/?channels=nim)
263 | * [The Nim Gitter channel](https://gitter.im/nim-lang/Nim)
264 | * [The Nim mailing list](http://www.freelists.org/list/nim-dev)
265 | * [The Nim SubReddit](http://reddit.com/r/nim)
266 | * [The Nim Telegram](https://t.me/nim_lang)
267 | * [The Nim Telegram on Spanish](https://t.me/NimArgentina)
268 |
269 | [**⇑**](#contents "Go to the top")
270 |
271 | ## Websites
272 |
273 | * [Nim Basics](https://narimiran.github.io/nim-basics/) - Tutorial for beginners and people just starting with Nim.
274 | * [How I start](https://howistart.org/posts/nim) - Great guide going from 0 to a bf interpreter and then a bf to Nim compiler.
275 | * [Learn Nim in Y minutes](https://learnxinyminutes.com/docs/nim/) - Whirlwind tour.
276 | * [Nim by Example](https://nim-by-example.github.io) - Series of pages and examples for learning the Nim programming language.
277 | * [Nim for Python programmers](https://github.com/nim-lang/Nim/wiki/Nim-for-Python-Programmers) - Guide to Nim for people with experience in Python.
278 | * [Rosettacode:Nim](https://rosettacode.org/wiki/Category:Nim) - 100s of solutions for various tasks using Nim (Implementations available in other languages as well).
279 |
280 | [**⇑**](#contents "Go to the top")
281 |
282 | # Contributing
283 |
284 | Contributions are very welcome!
285 |
286 | Please have a look at [CONTRIBUTING](https://github.com/VPashkov/awesome-nim/blob/master/CONTRIBUTING.md) for guidelines.
287 |
288 | [**⇑**](#contents "Go to the top")
289 |
--------------------------------------------------------------------------------