An open API service indexing awesome lists of open source software.

awesome-nim

A curated list of awesome Nim frameworks, libraries, software and resources.
https://github.com/ringabout/awesome-nim

Last synced: 4 days ago
JSON representation

Algorithms

Bigints

  • bigints - Bigints for Nim.
  • stint - Stack-based arbitrary-precision integers. Fast and portable with natural syntax for resource-restricted devices.
  • theo - An optimized bigint and number theory library for Nim.

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. -->

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. -->

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.

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.
  • nim-agent-template - Scaffolding generator and template featuring AI agent skills, MCP tooling, and multi-toolchain build profiles.

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.
  • Cliquet - A CLI args and config file parser merging both into a single object, with automatic help generation.
  • easyargs - Dead simple data-oriented argument parsing for Nim.

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

  • drchaos - A powerful and easy-to-use fuzzing framework in Nim for C/C++/Obj-C targets.
  • libfuzzer - LibFuzzer's interface bindings.

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].

Static Analysis

  • DrNim - Combines the Nim frontend with the Z3 proof engine, in order to allow verify/validate software.
  • nimalyzer - Static code analyzer for Nim, inspired by AdaControl.

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.

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.

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.
  • jolt-nim - Native Nim bindings for Jolt Physics 5.6.0 with raw and ownership-safe high-level APIs [MIT].

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

  • nimvisa - Wrapper for NI-VISA instrument control library.
  • ftd2xx - Wrapper for FTDI ftd2xx library (USB to JTAG/SPI/I2C/Bitbang etc.).

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

  • std/async - Async/await implementation in Nim's stdlib (aka asyncdispatch).
  • chronos - An efficient library for asynchronous programming.
  • cps - Continuation-Passing Style for Nim.

Contracts

  • contracts - Used to make contracts - elegant promises that pieces of code will fulfill certain conditions.
  • contra - Lightweight and fast self-documenting design by contract programming.

Editors

  • Nim Playground - Code and run Nim online.
  • moe - A vim-like editor made with Nim, also supports C, Rust, Javascript, etc.
  • DoongJohn's Nim playground - An alternative implementation of the Nim playground.
  • Nev - A keyboard focused GUI and terminal text editor.

Error Handling

  • result - Friendly, exception-free value-or-error returns, similar to Option[T].