awesome-nim
A curated list of awesome Nim frameworks, libraries, software and resources.
https://github.com/ringabout/awesome-nim
Last synced: 5 days ago
JSON representation
-
Algorithms
-
Bigints
-
Blockchain
- eth - Common utilities for Ethereum.
- nimbus-eth1 - An Ethereum 1.0 and 2.0 client for resource-restricted devices.
- nimbus-eth2 - Efficient implementation of the Ethereum 2.0 blockchain.
- evmc - Ethereum VM binary compatible interface.
- ethash - A pure-Nim implementation of Ethash, the Ethereum proof of work.
- contract-abi - Implements encoding of parameters according to the Ethereum Contract ABI specification.
- web3 - The humble beginnings of a Nim library similar to web3.[js|py]. -->
- abc - Experimental asynchronous blockchain. -->
- nitro - Highly experimental implementation of the Nitro statechannels protocol in Nim. -->
- contract-abi - Implements encoding of parameters according to the Ethereum Contract ABI specification.
- nitro - Highly experimental implementation of the Nitro statechannels protocol in Nim. -->
- contract-abi - Implements encoding of parameters according to the Ethereum Contract ABI specification.
- nitro - Highly experimental implementation of the Nitro statechannels protocol in Nim. -->
-
Compression
- zippy - Pure Nim implementation of deflate, zlib, gzip and zip.
- supersnappy - Dependency-free and performant Nim Snappy implementation.
- snappy - Nim implementation of Snappy compression algorithm.
- zip - Wrapper for the zip library.
-
Cryptography
- nimcrypto - Nim cryptographic library.
- nimaes - Advanced Encryption Standard, Rinjdael Algorithm written in Nim.
- constantine - Constant time pairing-based of elliptic curve based cryptography and digital signatures.
- bslcurve - Nim implementation of BLS signature scheme (Boneh-Lynn-Shacham) over Barreto-Lynn-Scott (BLS) curve BLS12-381.
- bncurve - Nim implementation of Barreto-Naehrig pairing-friendly elliptic curve.
- xxtea - XXTEA encryption algorithm library.
- crc32 - CRC32 for Nim. Just pass the thing you want to do CRC.
- rollinghash - High performance Nim implementation of a Cyclic Polynomial Hash, aka BuzHash, and the Rabin-Karp algorithm.
- murmurhash - Pure Nim implementation of MurmerHash
- des - DES/3DES, DUKPT and MAC in Nim.
- shimsham - A collection of hash functions, including JH, SHA-2, SHA-3, SipHash, Tiger, and Whirlpool.
- NiMPC - A secure multi-party computation (MPC) library for the Nim programming language.
- hashlib - Hash library that contains almost all the hash functions for Nim.
- xxhash.nim - A wrapper for the xxhash hashing library in Nim.
- bcryptrocks - Nim wrapper of Solar Designer's `crypt_blowfish` library
-
Deep Learning
- Arraymancer - A fast, ergonomic and portable tensor library in Nim with a deep learning focus for CPU, GPU, OpenCL and embedded devices.
- 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.
- laser - Carefully-tuned primitives for running tensor and image-processing code on CPU, GPUs and accelerators.
- flambeau - Nim bindings to libtorch. -->
- laser - Carefully-tuned primitives for running tensor and image-processing code on CPU, GPUs and accelerators.
-
Math
- symbolicnim - A symbolic library written purely in Nim.
- impulse - Impulse will be a collection of primitives for signal processing (FFT, Convolutions).
- vectorize - SIMD vectorization backend.
- vmath - Math vector library for graphical things.
- neo - A matrix library.
- manu - Nim MAtrix NUmeric package - a port of JAMA, adapted to Nim.
- nlopt - A wrapper for the nonlinear optimization library Nlopt.
- neo - A matrix library.
-
-
Data
-
Database
- nimongo - Pure Nim lang MongoDB driver.
- asyncpg - Asynchronous PostgreSQL driver for Nim.
- anonimongo - Another Nim pure Mongo DB driver.
- redis - Official redis wrapper for Nim.
- amysql - Async MySQL Connector write in pure Nim.
- mycouch - Multisync CouchDB driver for Nim.
- SQLiteral - A high level SQLite API for Nim.
- asyncmysql - Asynchronous MySQL connector written in pure Nim.
- sqlcipher - SQLCipher wrapper.
- litestore - A lightweight, self-contained, RESTful, searchable, multi-format NoSQL document store.
- rocksdb - Nim wrapper for RocksDB, a persistent key-value store for flash and RAM Storage.
- ormin - Prepared SQL statement generator , A lightweight ORM.
- allographer - A query_builder/ORM library inspired by Laravel/PHP and Orator/Python for Nim.
- gatabase - Connection-Pooling Compile-Time ORM for Nim.
- norm - Norm is an object-oriented, framework-agnostic ORM for Nim that supports SQLite and PostgreSQL.
- tiny_sqlite - Very lightweight and safe SQLite library.
- limdb - Very high performance, persistent and safe key-value store based on LMDB with Nim table-like interface.
- kuzu - Wrapper for Kuzu - an embedded graph database built for query speed and scalability.
- db_connector - Unified db connector in Nim.
- surrealdb.nim - SurrealDB driver for Nim.
- RocheDB - Ring-oriented NoSQL document and vector store for locality-aware retrieval. [Apache-2.0]
- KoutenDB - Locality-aware NoSQL document/vector database built around rings and orbit-inspired retrieval.
-
Data Processing
- NimData - DataFrame API written in Nim, enabling fast out-of-core data processing.
- Datamancer - A dataframe library with a dplyr like API.
- nimdataframe - Dataframe for Nim.
- nimhdf5 - Wrapper and some simple high-level bindings for the HDF5 library for Nim.
- mpfit - A wrapper for the cMPFIT library for Nim.
-
Data Structures
- BitVector - A high-performance Nim implementation of BitVectors.
- rbtree - A Red/Black tree implementation in Nim.
- quadtree - A Quadtree library for Nim.
- kdtree - A pure Nim k-d tree implementation for efficient spatial querying of point data.
- RTree - Generic R-tree implementation for Nim.
- sorta - SortedTables in Nim, based on B-trees.
- minmaxheap - A Nim implementation of a Minimum-Maximum heap.
- BipBuffer - A Nim implementation of Simon Cooke's Bib Buffer
- bloom - Bloom filter implementation in Nim.
- binaryheap - Simple binary heap implementation in Nim.
- faststack - Dynamically resizable data structure for fast iteration over large arrays of similar elements.
- StashTable - Concurrent hash tables for Nim.
-
Parsing
- parsetoml - A Nim library to parse TOML files.
- NimYAML - YAML implementation for Nim.
- Binarylang - Extensible Nim DSL for creating binary parsers/encoders in a symmetric fashion.
- iniplus - INI parser with support for arrays and tables.
- beautifulparser - Simple library for parsing HTML documents inspired by beautifulsoup4.
- Marvdown - A stupid simple Markdown parser.
- iniplus - Extended INI parser with support for arrays and tables.
-
Serialization
- nesm - NESM is a tool that generates serialization and deserialization code for a given object.
- serialization - A modern and extensible serialization framework for Nim.
- json-serialization - Flexible JSON serialization not relying on run-time type information.
- protobuf-serialization - The nim-protobuf-serialization.
- ssz-serialization - Nim implementation of Simple Serialize (SSZ) serialization and merkleization.
- toml-serialization - Flexible TOML serialization `not` relying on run-time type information.
- frosty - Marshal native Nim objects via streams, sockets.
- protobuf-nim - Protobuf implementation in pure Nim that leverages the power of the macro system to not depend on any external tools.
- flatty - Tools and serializer for plain flat binary files.
- bingo - Binary serialization framework for Nim.
- tnetstring - Parsing and serializing for the TNetstring format.
-
Standards
- isocodes - ISO codes for Nim (ISO 3166-1, ISO 3166-2, ISO 3166-3, ISO 15924, ISO 15924, ISO 639-2, ISO 639-5)
-
-
Development Tools
-
Benchmarking
- golden - A benchmark for compile-time and/or runtime Nim.
- criterion - Statistic-driven micro-benchmark framework.
- stopwatch - A fork of rbmz's stopwatch that adds extra features.
- nimbench - A micro benchmark module for Nim.
- benchy - Simple benchmarking to time your code.
- timeit - Measuring execution times written by Nim.
-
Binding Generators
- c2nim - c2nim is a tool to translate Ansi C code to Nim.
- nimgen - nimgen is a helper for c2nim to simplify and automate the wrapping of C libraries. Superseded by nimterop.
- nimterop - A Nim package that leverages tree-sitter to make C/C++ interop seamless. Superseded by Futhark.
- Futhark - Automatic wrapping of C headers in Nim with libclang.
- nimpy - Generate Python wrappers and call Python from Nim.
- jnim - Nim - Java bridge.
- rnim - A bridge between R and Nim. Currently this is a barely working prototype. -->
-
Build Systems / Package Management
- ChooseNim - Installing and switching between Nim versions (à la rustup, pyenv).
- Nake - Describe your Nim builds as tasks.
- Nawabs - A build system that throws away version numbering in favor of git hashes.
- Nimble - Nimble can be used as a build system.
- nimph - Nim package hierarchy manager from the future.
- nimby - A very simple and unofficial package manager for Nim.
- nifty - A decentralized pseudo package manager and script runner.
- nsis - Nim programming language setup tool.
- nim-windows-container - A Windows Container with a complete Nim build environment.
- ChooseNim - Installing and switching between Nim versions (à la rustup, pyenv).
- GrabNim - Install and switch between multiple Nim compiler versions. (Alternative to ChooseNim).
- Atlas - The Atlas Package cloner. It manages an isolated workspace that contains projects and dependencies.
-
Command-Line Interface Automation
- cligen - Infer & generate command-line interace/option/argument parsers.
- docopt.nim - Command-line args parser.
- argparse - Argument parsing for Nim.
- cliche - AutoMagic CLI argument parsing is so cliché.
- loki - A small library for writing line-oriented command interpreters in Nim.
- confutils - Simplified handling of command line options and config files
- Cmdos - A simple way to process cli arguments and help messages.
- cozycliparser - Lean, feature-rich, DSL-free CLI parser based on `std/parseopt`. [Docs](https://indiscipline.github.io/cozycliparser/).
- Cliquet - A CLI args and config file parser merging both into a single object, with automatic help generation.
- clapfn - Argument parsing similar to Python's argparse.
-
Editor Integration
- Editor Support - Official list of editor plugins for Nim.
- nimlsp - The Language Server Protocol implementation for Nim.
- nim.nvim - Nim plugin for NeoVim.
- vscode-nim - Language support for the Nim programming language for VS Code.
-
Fuzzing
-
Logging
- chronicles - A crafty implementation of structured logging for Nim.
- morelogging - Logging library for Nim.
- threadlogging - A thread safe logging library using Nim's own logging module.
- watchtower - Lightweight logging library with colorized output, log rotation, and context fields.
- kslog - Minimalistic Kernel-Syslogd For Linux in Nim.
-
REPL
- jupyternim - A Jupyter kernel for Nim.
- Reploid - A Nim REPL running on top of a `nim c` or a `nimscript` VM, `import [anything]`.
- INim - Interactive Nim Shell.
-
Static Analysis
-
Testing
- faker - A Nim package that generates fake data for you.
- balls - A unittest macro to save the world, or at least your Sunday.
- einheit - A Nim unit testing library inspired by Python's unit tests.
- asynctest - Complements the standard unittest module in Nim to allow testing of asynchronous code.
- unittest2 - Fork of the "unittest" Nim module focusing on parallel test execution, test-level scoping and strict exception handling.
- asynctest - Complements the standard unittest module in Nim to allow testing of asynchronous code.
- asynctest - Complements the standard unittest module in Nim to allow testing of asynchronous code.
-
-
Game Development
-
Game Engines
- NimForUE - Nim plugin for UE5 with native performance, hot reloading and full interop that sits between C++ and Blueprints.
- nimgame2 - A simple 2D game engine for Nim.
- norx - A complete wrapper of the ORX 2.5D cross platform game engine library.
- godot-nim - Nim bindings for Godot Engine.
- rod - Cross-platform 2D and 3D game engine.
- frag - Cross-platform 2D/3D game engine.
- semicongine - Cross-platform, (almost) dependency-free game engine.
- saohime - An extensible 2D game engine for Nim, inspired by Bevy Engine.
- alasgar - Pure nim 3D game engine based on OpenGL.
-
Game Frameworks
- nico - Nim Game Framework based on Pico-8.
- natu - Toolkit for writing Game Boy Advance games in Nim.
- naylib - safe Raylib wrapper.
- c4 - Modular and extensible 2D and 3D game framework for Nim.
- paranim - A game library based around carefully chosen abstractions.
- c4 - Modular and extensible 2D and 3D game framework for Nim.
-
Game Libraries
- nimgl - NimGL is a Nim library that offers bindings for popular libraries used in computer graphics.
- glm - Port of the popular glm C++ library to Nim.
- GLAD - Multi-Language Vulkan/GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specs.
- enu - 3D live coding with a Logo-like DSL for Godot, implemented in Nim.
-
Rules Engines
- turn_based_game - A game rules engine for simulating or playing turn-based games.
- pararules - A RETE-based rules engine made for games.
-
-
Hardware
-
Backups
-
Embedded
- ratel - Next-generation, zero-cost abstraction microconroller programming in Nim.
- ardunimo - Nim wrapper for Arduino + LinkIt ONE SDK by Mediatek.
- ardunimesp - Nim wrapper for Arduino ESP8266 framework + A tool for flashing, compiling and making a Nim project into an Arduino project.
- msp430f5510 - Run Nim on MSP430f5510 micro-controller (6KB of RAM).
- Nesper - Program the ESP32 using Nim. Library on top of esp-idf.
- stm32f3 - Run Nim on STM32F3 micro-controller (16KB of RAM).
- boneIO - GPIO implementation for the BeagleBone Black for Nim.
- avr_io - Nim register bindings and utilities for AVR microcontrollers.
- avrman - A tool for managing Nim and C projects targetting AVR microcontrollers.
-
-
Language Features
-
Async IO
-
Contracts
- contracts - Used to make contracts - elegant promises that pieces of code will fulfill certain conditions.
-
Programming Languages
Categories
Sub Categories
Protocols
34
GUI
23
Database
22
Videos
18
Cryptography
15
Embedded
14
Frameworks
14
Tutorials
13
Blockchain
13
Data Structures
12
Build Systems / Package Management
12
Serialization
11
Command-Line Interface Automation
10
Community
10
Pattern Matching
9
Game Engines
9
Math
8
Terminal
8
Template Engines
8
Binding Generators
7
IO
7
Parsing
7
Threading
7
Testing
7
Plotting
7
Blogs
7
Iteration
7
Benchmarking
6
Books
6
HTTP Servers
6
Game Frameworks
6
Audio
5
Images
5
Data Processing
5
Deep Learning
5
Functional Programming
5
Error Handling
5
Object-Oriented Programming
5
Macros
5
Logging
5
Game Libraries
4
Design
4
Editors
4
Compression
4
Editor Integration
4
System API
4
Processes
4
Randomization
4
REPL
3
Async IO
3
Standard Libraries
3
Backups
3
Bigints
3
Date and Time
3
Markdown
3
Scripting
3
Package Repositories
2
String Types
2
Prometheus exporters
2
Fuzzing
2
Gemini Servers
2
Static Analysis
2
Rules Engines
2
Contracts
2
Implementations
2
Authentication
2
HTML Parsers
1
Standards
1
Translation
1
Documents
1
Keywords
nim
166
nim-lang
57
nim-language
11
web
9
python
7
http
7
wrapper
7
javascript
6
game-engine
6
bindings
6
gui
6
nimble
6
html
6
parser
6
async
5
database
5
library
5
dsl
5
serialization
5
server
5
terminal
4
postgresql
4
template
4
cli
4
game-development
4
webframework
4
gamedev
4
ethereum
4
ui
4
string
3
sqlite3
3
linear-algebra
3
language
3
compression
3
sql
3
cryptography
3
command-line
3
http-server
3
websockets
3
framework
3
typescript
3
openmp
3
multithreading
3
vulkan
3
opengl
3
web-framework
3
sqlite
3
high-performance
3
macro
3
orm
3