awesome-nim:基于 Nim 生态的精选框架、库与资源集合项目

A curated list of awesome Nim frameworks, libraries, software and resources.

Branch1Tags0
This repository is empty

Awesome-nim-logo

精选的 Nim 框架、库、软件及资源列表。

Nim 是一种静态类型编译型系统编程语言。适用于从 shell 脚本到 Web 前后端,再到机器学习、高性能计算和嵌入式开发等各种场景。

目录

语言特性

实现版本

  • Nim - Nim(前身为“Nimrod”)是一种编译型、垃圾回收的系统编程语言,具有出色的生产力与性能比。Nim 的设计重点依次为效率、表达力和优雅性。
  • nlvm - Nim 的 LLVM 后端。

标准库

Nim 提供了独特的特性,可与其他技术实现无缝且透明的互操作性。一些用户发现,让其他标准库能够从 Nim 中使用是很有用的。

  • cpython - 适用于 Nim 的 Python 标准库。
  • Node.js - 适用于 Nim 的 Node.js 标准库。

此外,与上述需要运行时依赖的库不同,还有一些纯 Nim 库已被实现。

  • pylib - Python 内置函数、库和语法糖的纯 Nim 实现。

包仓库

编辑器

  • moe - 一款用 Nim 制作的类 Vim 编辑器,也支持 C、Rust、Javascript 等语言。
  • Nev - 一款专注于键盘操作的 GUI 与终端文本编辑器。
  • Nim Playground - 在线编写和运行 Nim 代码。
  • DoongJohn's Nim playground - Nim playground 的另一种实现。

异步 IO

  • std/async - Nim 标准库中的异步/等待实现(也称为 asyncdispatch)。
  • chronos - 一个高效的异步编程库。
  • cps - Nim 的延续传递风格(Continuation-Passing Style)实现。

线程

  • malebolgia - Nim 中的一个强大库,可简化并发和并行编程的实现。
  • weave - 一种先进的多线程运行时:基于消息传递,快速、可扩展、超低开销。
  • timerpool - 用于事件处理的线程安全定时器池实现。
  • taskpools - 轻量级、节能、易于审计的线程池。
  • shared - 一个用于共享类型的 Nim 库。
  • synthesis - 一个编译时、基于过程、低开销、无分配的状态机生成器,针对通信进程和线程进行了优化。
  • sync - 实用的同步原语。
  • threadlogging - 一个使用 Nim 自身日志模块的线程安全日志库。

错误处理

  • result - 友好的、无异常的“值或错误”返回方式,类似于 Option[T]。
  • questionable - Nim 的优雅可选类型。
  • optionsutils - 用于更轻松处理 Nim 中选项的实用宏。

契约

  • contracts - 用于创建契约——代码片段将满足特定条件的优雅承诺。
  • contra - 轻量级且快速的自文档化契约式设计编程。

面向对象编程

  • oop_utils - 用于构建 OOP 类层次结构的 Nim 宏。
  • interfaced - Nim 的接口。
  • traitor - 一个因无聊而制作的宏密集型 trait 库。
  • classes - Nim 的 Python 风格类系统。
  • classy - Nim 的 Haskell 风格类型类。

函数式编程

  • cascade - Nim 的方法与赋值级联,灵感源自 Smalltalk 和 Dart。
  • nimfp - Nim 函数式编程库。
  • nim-pipexp - Nim 的基于表达式的管道运算符,带有占位符参数。
  • pipe - Nim 的管道运算符,如函数式语言中所见。
  • zero-functional - 一个为 Nim 中的函数式抽象提供(几乎)零成本链式调用的库。

模式匹配

  • razaberi - 模式匹配库,2000 多个测试用例,完备性检查,深度解构支持。
  • regex - 纯 Nim 正则表达式引擎,具有线性时间匹配。
  • npeg - Nim 的 PEG 库,另一种实现。
  • patty - Nim 的模式匹配库。
  • gara - 基于宏的模式匹配库。
  • glob - 用于将文件路径与 Unix 风格 glob 模式匹配的纯库。
  • ast_pattern_match - 用于对 AST 进行模式匹配的库。
  • awk - Nim 中的 awk 函数库。
  • tinyre - 基于 Rob Pike 的 VM 实现的微型正则表达式引擎。

迭代

  • iterrr - 基于宏的函数式风格、类惰性、可扩展迭代器库。
  • itertools - 同名热门 Python 模块的 Nim 重写版本。
  • loopfusion - 高效迭代可变数量的容器。
  • looper - Nim 的 for 循环宏。

  • macroutils - 一个简化宏创建过程的包。
  • nimacros - Nim 宏的文档。
  • unpack - 序列/对象解包/解构。
  • with - Nim 的 with 宏。
  • memo - Nim 的记忆化功能。

操作系统

系统 API

  • winim - Nim 的 Windows API 和 COM 库。
  • serial - 用于访问串行端口的 Nim 库。
  • tempdir - 用于创建和管理临时目录的 Nim 库。
  • nimbluez - 用于访问系统蓝牙资源的 Nim 模块。

输入/输出

  • std/selectors - Nim 标准库中的 Epoll/Kqueue/Select 实现。
  • ioselectors - Nim 的增强版 I/O 选择器。
  • wepoll - Windows 平台的 epoll 包装器,适用于 Nim。
  • faststreams - 近乎零开销的 Nim 输入/输出流。
  • lockfreequeues - 用于 Nim 的无锁队列实现。

进程

  • psutil - Python 的 psutil 移植到 Nim 的版本。
  • shell - 一个小型 Nim DSL,用于更方便地执行 shell 命令。
  • schedules - 一个 Nim 调度器库,允许你按固定间隔启动作业。
  • daemon - 用于 Nim 语言的跨平台进程守护化库。

日期和时间

  • datetime2human - 精确计算从秒到千年的日期和时间。提供人性化的日期时间字符串。支持 ISO-8601 标准。
  • timezones - 与标准库兼容的 Nim 时区库。
  • chrono - 一个包含时间戳、日历和时区功能的库。

随机化

  • random - Nim 的随机数生成库,灵感来源于 Python 的 "random" 模块。
  • sysrandom.nim - 一个使用系统 PRNG 生成随机数和随机字节范围的 Nim 库。
  • alea - 定义和组合随机变量。
  • drand48 - 标准 Unix drand48 随机数生成器的 Nim 实现。

脚本编写

  • nimcr - 使用 Shebang 运行 Nim 代码。
  • nimr - 像运行脚本一样运行 Nim 程序。
  • nimbang - 使用 shebang 将 Nim 程序作为脚本运行。

系统工具

备份

  • norg - borg 和 restic 的便携式包装器。

Prometheus 导出器

硬件

  • nimvisa - NI-VISA 仪器控制库的包装器。
  • ftd2xx - FTDI ftd2xx 库的包装器(支持 USB 转 JTAG/SPI/I2C/位bang等)。

嵌入式

  • ratel - 下一代、零成本抽象的微控制器 Nim 编程。
  • ardunimo - Arduino + 联发科 LinkIt ONE SDK 的 Nim 包装器。
  • ardunimesp - Arduino ESP8266 框架的 Nim 包装器 + 用于将 Nim 项目编译、闪存并转换为 Arduino 项目的工具。
  • avr_io - AVR 微控制器的 Nim 寄存器绑定和实用工具。
  • avrman - 用于管理针对 AVR 微控制器的 Nim 和 C 项目的工具。
  • msp430f5510 - 在 MSP430f5510 微控制器(6KB RAM)上运行 Nim。
  • Nesper - 使用 Nim 编程 ESP32。基于 esp-idf 的库。
  • stm32f3 - 在 STM32F3 微控制器(16KB RAM)上运行 Nim。
  • boneIO - BeagleBone Black 的 Nim GPIO 实现。

科学

  • units - Nim 语言的静态类型物理量单位库。
  • unchained - 一个完全类型安全、仅在编译时工作的单位库。
  • metric - 提供类型级维度分析的小型库。
  • orbits - Nim 的轨道力学库。
  • qex - 用于格点场运算的高级框架。

数据

数据库

驱动

  • amysql - 纯 Nim 编写的异步 MySQL 连接器。
  • anonimongo - 另一个纯 Nim 编写的 MongoDB 驱动。
  • asyncmysql - 纯 Nim 编写的异步 MySQL 连接器。
  • asyncpg - Nim 的异步 PostgreSQL 驱动。
  • db_connector - Nim 中的统一数据库连接器。
  • kuzu - Kuzu 的包装器,Kuzu 是一个为查询速度和可扩展性构建的嵌入式图数据库。
  • limdb - 基于 LMDB 的高性能、持久且安全的键值存储,具有类似 Nim table 的接口。
  • litestore - 一个轻量级、自包含、RESTful、可搜索的多格式 NoSQL 文档存储。
  • mycouch - Nim 的多同步 CouchDB 驱动。
  • nimongo - 纯 Nim 语言的 MongoDB 驱动。
  • redis - Nim 的官方 Redis 包装器。
  • KoutenDB - 基于环和类轨道检索构建的位置感知型 NoSQL 文档/向量数据库。
  • rocksdb - RocksDB 的 Nim 包装器,RocksDB 是一个用于闪存和 RAM 存储的持久键值存储。
  • sqlcipher - SQLCipher 包装器。
  • SQLiteral - Nim 的高级 SQLite API。
  • surrealdb.nim - SurrealDB 的 Nim 驱动。
  • tiny_sqlite - 非常轻量级且安全的 SQLite 库。

ORM

  • ormin - 预准备 SQL 语句生成器,一个轻量级 ORM。
  • allographer - 受 Laravel/PHP 和 Orator/Python 启发的查询构建器/ORM 库,适用于 Nim。
  • gatabase - Nim 的连接池编译时 ORM。
  • norm - Norm 是一个面向对象、与框架无关的 Nim ORM,支持 SQLite 和 PostgreSQL。

数据结构

  • BitVector - 一个高性能的 Nim 位向量实现。
  • rbtree - Nim 中的红黑树实现。
  • quadtree - Nim 的四叉树库。
  • kdtree - 纯 Nim 实现的 k-d 树,用于高效的点数据空间查询。
  • RTree - Nim 的通用 R 树实现。
  • sorta - Nim 中的排序表,基于 B 树。
  • minmaxheap - Nim 的最小-最大堆实现。
  • BipBuffer - Simon Cooke 的 Bib Buffer 的 Nim 实现。
  • bloom - Nim 中的布隆过滤器实现。
  • binaryheap - Nim 中的简单二叉堆实现。
  • faststack - 动态可调整大小的数据结构,用于快速迭代大型相似元素数组。
  • StashTable - Nim 的并发哈希表。

数据处理

  • NimData - 用 Nim 编写的 DataFrame API,支持快速的核外数据处理。
  • Datamancer - 一个具有类似 dplyr API 的数据框库。
  • nimdataframe - Nim 的数据框。
  • nimhdf5 - HDF5 库的 Nim 包装器和一些简单的高级绑定。
  • mpfit - cMPFIT 库的 Nim 包装器。

解析

  • beautifulparser - 受 beautifulsoup4 启发的简单 HTML 文档解析库。
  • Binarylang - 可扩展的 Nim DSL,用于以对称方式创建二进制解析器/编码器。
  • iniplus - 扩展的 INI 解析器,支持数组和表格。
  • Marvdown - 一个极其简单的 Markdown 解析器。
  • NimYAML - Nim 的 YAML 实现。
  • parsetoml - 用于解析 TOML 文件的 Nim 库。

序列化

  • bingo - Nim 的二进制序列化框架。
  • flatty - 用于纯扁平二进制文件的工具和序列化器。
  • frosty - 通过流、套接字封送原生 Nim 对象。
  • json-serialization - 不依赖运行时类型信息的灵活 JSON 序列化。
  • nesm - NESM 是一个为给定对象生成序列化和反序列化代码的工具。
  • protobuf-nim - 纯 Nim 实现的 Protobuf,利用宏系统的强大功能,不依赖任何外部工具。
  • protobuf-serialization - nim-protobuf-serialization。
  • serialization - 一个现代化且可扩展的 Nim 序列化框架。
  • ssz-serialization - 简单序列化(SSZ)和默克尔化的 Nim 实现。
  • tnetstring - TNetstring 格式的解析和序列化。
  • toml-serialization - 不依赖运行时类型信息的灵活 TOML 序列化。

标准

  • isocodes - Nim 的 ISO 代码(ISO 3166-1、ISO 3166-2、ISO 3166-3、ISO 15924、ISO 15924、ISO 639-2、ISO 639-5)

文本

字符串类型

  • ssostrings - 小字符串优化(SSO)字符串实现。
  • cowstrings - 根据 nim-lang/RFCs#221 实现的写时复制(Copy-On-Write)字符串。

翻译

  • tinyslation - 来自免费在线众包 API 的文本字符串翻译。

Markdown

  • HastyScribe - 独立的 Markdown 编译器,可生成独立的 HTML 文档。
  • markdown - Nim 领域中一款出色的 Markdown 解析器。
  • lester - 将 Markdown 快速转换为 HTML 文档。

多媒体

音频

  • paramidi - 用于制作 MIDI 音乐的 Nim 库。
  • omni - 用于低级音频编程的 DSL。
  • wave - 一个小型 WAV 声音模块。
  • parasound - 提供 miniaudio 和 dr_wav 的 Nim 绑定库。
  • jacket - libjack C 库的 Nim 包装器,用于为 JACK 音频服务器编写客户端。

图像

  • pixie - 功能全面的 Nim 2D 图形库。
  • nimpng - 用 Nim 编写的 PNG(可移植网络图形)解码器和编码器。
  • nimbmp - 用 Nim 编写的 BMP 解码器和编码器。
  • nimsvg - 基于 Nim 的 DSL,支持生成 SVG 文件和 GIF 动画。
  • pnm - Nim 中的 PNM(可移植任意映射)库。

文档

  • nimpdf - 用 Nim 编写的 PDF 文档写入器。

算法

数学

符号计算

快速傅里叶变换(FFT)

  • impulse - Impulse 将成为信号处理(FFT、卷积)原语的集合。

向量

  • vectorize - SIMD 向量化后端。
  • vmath - 用于图形相关的数学向量库。

矩阵

  • neo - 矩阵库。
  • manu - Nim 矩阵数值包 - JAMA 的移植版,已适配 Nim。
  • nlopt - 非线性优化库 Nlopt 的包装器。

深度学习

  • Arraymancer - 一个快速、易用且便携的 Nim 张量库,专注于深度学习,适用于 CPU、GPU、OpenCL 和嵌入式设备。
  • NimTorch - PyTorch 的 Python 与 Nim 结合体。PyTorch 原生后端的 Nim 前端,将 Nim 的速度、生产力和便携性与 PyTorch 的最新实现相结合。
  • laser - 精心优化的基元,用于在 CPU、GPU 和加速器上运行张量和图像处理代码。

大整数

  • bigints - Nim 的大整数库。
  • stint - 基于栈的任意精度整数。速度快、可移植,语法自然,适用于资源受限设备。
  • theo - 一个针对 Nim 优化的大整数和数论库。

密码学

  • bcryptrocks - Solar Designer 的 crypt_blowfish 库的 Nim 包装器
  • bncurve - Barreto-Naehrig 配对友好椭圆曲线的 Nim 实现。
  • bslcurve - 基于 Barreto-Lynn-Scott (BLS) 曲线 BLS12-381 的 BLS 签名方案(Boneh-Lynn-Shacham)的 Nim 实现。
  • constantine - 基于配对的椭圆曲线密码学和数字签名的常数时间实现。
  • crc32 - Nim 的 CRC32 实现。只需传入你想要计算 CRC 的数据即可。
  • des - Nim 中的 DES/3DES、DUKPT 和 MAC 实现。
  • hashlib - 包含几乎所有哈希函数的 Nim 哈希库。
  • murmurhash - MurmerHash 的纯 Nim 实现
  • nimaes - 用 Nim 编写的高级加密标准(AES)Rinjdael 算法。
  • nimcrypto - Nim 加密库。
  • NiMPC - Nim 编程语言的安全多方计算(MPC)库。
  • rollinghash - 循环多项式哈希(又称 BuzHash)和 Rabin-Karp 算法的高性能 Nim 实现。
  • shimsham - 一系列哈希函数的集合,包括 JH、SHA-2、SHA-3、SipHash、Tiger 和 Whirlpool。
  • xxhash.nim - xxhash 哈希库的 Nim 包装器。
  • xxtea - XXTEA 加密算法库。

区块链

  • eth - 以太坊通用工具集。
  • nimbus-eth1 - 适用于资源受限设备的以太坊 1.0 和 2.0 客户端。
  • nimbus-eth2 - 以太坊 2.0 区块链的高效实现。
  • evmc - 以太坊虚拟机二进制兼容接口。
  • ethash - Ethash 的纯 Nim 实现,即以太坊工作量证明算法。
  • contract-abi - 根据以太坊合约 ABI 规范实现参数编码。

压缩

  • zippy - deflate、zlib、gzip 和 zip 的纯 Nim 实现。
  • supersnappy - 无依赖且高性能的 Nim Snappy 实现。
  • snappy - Snappy 压缩算法的 Nim 实现。
  • zip - zip 库的包装器。

用户界面

终端

  • illwill - 受 (n)curses 启发的简单跨平台终端库。
  • niffler - 用 Nim 编写的命令行 AI 助手。
  • Nimmm - 适用于 Linux 的终端文件管理器。
  • pager - 用 Nim 编写的简单命令行分页器库。
  • pnimrp - 在舒适的终端中流式播放您喜爱的广播电台。
  • prettyterm - 用于在 Nim 中创建美观终端界面的库。
  • jn - 一个命令行笔记和任务管理器。

设计

  • chroma - 一切你想对颜色进行的操作,尽在Nim中实现。
  • typography - 字体、排版与光栅化处理。
  • trick - GBA/NDS图像转换库,功能不止于此!
  • HexToAnsi - 将十六进制颜色转换为ANSI颜色。

图形用户界面(GUI)

跨平台

  • nimx - 适用于桌面、移动设备及Web的Nim GUI框架。
  • NiGui - 一个跨平台的桌面GUI工具包。
  • ui - libui的包装器。有望成为Nim官方UI库的开端。
  • uing - libui-ng的包装器与绑定,libui-ng是libui的一个更新且维护中的分支。
  • iup - IUP的包装器。有望成为Nim官方UI库的开端。
  • SDL2 - SDL 2.x的官方包装器。
  • SDL2 - SDL 2的一个包装器。
  • Owlkettle - 基于GTK的声明式用户界面框架。
  • libtray - Tray(dmikushin的分支)的Nim包装器,Tray是一个用于创建系统托盘/菜单栏图标及弹出菜单的库。

Windows

  • wNim - Nim的Windows GUI框架。

Linux

  • gintro - 基于GObject-Introspection的GTK3/GTK4高级绑定,适用于Nim。
  • nimqml - Nim编程语言的Qt QML绑定。

Web技术

  • Neel - 用于创建类Electron的HTML/JS GUI应用的库。
  • nimview - 一个基于Nim/Webview的辅助工具,用于使用Nim和HTML/CSS创建桌面/服务器应用程序。
  • webgui - 基于Web技术的跨平台GUI框架,带有深色主题。
  • fidget2 - 用于原生编译的跨平台UI库 - Web端使用HTML5(WASM),Windows、macOS、Linux端使用OpenGL。
  • webview - Webview的Nim绑定与包装器。
  • webui - WebUI的Nim绑定与包装器。

轻量级

  • imgui - 通过cimgui实现的ImGui绑定,适用于Nim。
  • koi - 适用于Nim的即时模式UI。
  • nimAntTweakBar - AntTweakBar的包装器。

绘图

  • ggplotnim - ggplot2 的 Nim 移植版本。
  • plotly - Plotly 的 Nim 包装器。
  • graph - Nim 中的基础绘图库。
  • nimetry - 纯 Nim 实现的简单绘图工具。
  • nimgraphviz - 使用 GraphViz 和 DOT 创建图形的 Nim 库。
  • nimgnuplot - 简单的 Gnuplot Nim 接口,与 Datamancer 数据框兼容。

移动开发

  • react-native-nim - 一个 React Native 模板,展示了如何从 React Native 实现 Nim 与 iOS/Android 移动客户端的互操作。

Web 开发

协议

  • http-utils - HTTP 辅助过程。
  • puppy - Puppy 用于为 Nim 获取 HTML 页面。
  • netty - 用于 Nim 游戏的可靠 UDP 连接库。
  • json-rpc - 用于实现 JSON-RPC 客户端和服务器的 Nim 库。
  • nmqtt - 原生 Nim MQTT 客户端库。
  • libp2p - libp2p 网络栈的 Nim 实现。
  • libp2p-dht - 基于 libp2p Kademlia 规范的分布式哈希表(DHT)。
  • webdavclient - Nim 的 WebDAV 客户端。
  • stomp - 用于与 STOMP 兼容消息代理交互的纯 Nim 客户端库。
  • presto - 一个高效的 REST API 框架。
  • gemini - 用于创建 Gemini 服务器和客户端的构建块。
  • yahttp - 出色的简单 HTTP 客户端。

DNS

  • ndns - 纯 Nim 域名系统(DNS)客户端。
  • dnsprotocol - 用于 Nim 编程语言的域名系统(DNS)协议。

QUIC

  • quic - Nim 的 QUIC 协议实现。这是一个非常早期的开发版本,尚未达到可用状态。
  • ngtcp2 - ngtcp2 的包装器,ngtcp2 是一项实现 IETF QUIC 协议的努力。

WebSocket

  • ws - 用于 Nim 的简单 WebSocket 库。
  • websocket.nim - Nim 的 WebSocket 实现。
  • news - Nim 简易 WebSocket(Nim Easy WebSocket)。基于 ws。
  • jswebsockets - 针对 JavaScript 目标优化的 WebSocket。
  • websock - WebSocket 协议的 Nim 实现。

消息传递

  • telebot.nim - 纯 Nim 编写的 Telegram Bot API 异步客户端。
  • dimscord - 用于 Nim 的 Discord 机器人和 REST 库。
  • nwaku - Waku v1 和 v2 协议的实现。
  • status - Status 协议的 Nim 实现。

多播

HTML 解析器

  • Nimquery - 使用 CSS 选择器查询 HTML 的库,类似 JavaScript 的 document.querySelector

HTTP 服务器

  • httpbeast - 一款高性能、多线程的 HTTP 1.1 服务器(在 FrameworkBenchmarks 中排名前十)。
  • httpx - 适用于 Nim 的跨平台 Web 服务器。它是 httpbeast 的分支,增加了 Windows 支持。
  • GuildenStern - 真正支持多线程的集成式 HTTP/1.1 + WebSocket v13 服务器,适用于 POSIX 兼容操作系统。
  • Mummy - 多线程 HTTP 1.1 服务器,对 WebSocket 提供一流支持。
  • netkit - 即用型、稳定且安全的网络工具库,采用纯 Nim 编写。
  • jshttp2 - 异步 HTTPS 2.0 Web 服务器。

Gemini 服务器

  • Geminim - 一款 Gemini 服务器。
  • Nemini - 非常简单的 Gemini 服务器,用于提供静态 gemtext 文件。

框架

  • basolato - 基于 Jester 的 Nim 全栈 Web 框架。
  • happyx - 面向宏的全栈异步 Web 框架,采用 Nim 编写。
  • Jazzy - 高效开发框架。对开发者友好、速度极快,专为快速开发而设计。
  • Jester - 类 Sinatra 的 Nim Web 框架。Jester 提供了用于快速创建 Nim Web 应用程序的 DSL。
  • karax - 用于开发单页应用程序的 Nim 框架。
  • nim_websitecreator - Nim 全栈网站框架 - 几分钟内即可部署网站。
  • nim-palladian - Palladian 是基于 Preact 并对其进行封装的 Nim 前端框架。
  • prologue - 采用 Nim 编写的全栈 Web 框架。
  • rosencrantz - 用于编写 Web 服务器的 DSL,灵感源自 Spray 及其继任者 Akka HTTP。
  • scorper - 采用 Nim 编写的微型且优雅的 Web 框架。
  • starlight - 类 Flask 的 Nim Web 框架。
  • Supranim - 用于创建 REST API 和美观 Web 应用的简单 Web 框架。具有模型-视图-控制器结构及其他实用功能。
  • whip - 基于 httpbeast 和 nest 的简单快速 Nim HTTP 服务器,提供高性能路由。

模板引擎

  • html-dsl - Nim HTML 领域特定语言。
  • mustache - Mustache 规范 v1.2.1 的完整实现。
  • nimja - 受 jinja2、twig 和 onionhammer/nim-templates 启发的、适用于 Nim 的类型化编译型模板引擎。
  • Nim 源代码过滤器 - Nim 强大的内置功能,可用作模板系统或预处理器。
  • smalte - 一款极其简单轻量的模板引擎。专为在 Docker 中启动应用前进行配置而设计。
  • templates - Nim 的简单字符串模板库。
  • temple - Nim 的简单运行时模板库。
  • Tim - 高性能模板引擎与标记语言。

身份验证

  • oauth - Nim 的 OAuth 库。

游戏开发

游戏库

  • nimgl - NimGL 是一个 Nim 库,提供对计算机图形领域常用库的绑定。
  • glm - 热门 C++ 库 glm 到 Nim 的移植。
  • GLAD - 基于官方规范的多语言 Vulkan/GL/GLES/EGL/GLX/WGL 加载器生成器。
  • enu - 用于 Godot 的类 Logo 领域特定语言的 3D 实时编码,以 Nim 实现。

游戏框架

  • nico - 基于 Pico-8 的 Nim 游戏框架。
  • natu - 用于在 Nim 中编写 Game Boy Advance 游戏的工具包。
  • naylib - 安全的 Raylib 包装器。
  • c4 - 用于 Nim 的模块化、可扩展的 2D 和 3D 游戏框架。
  • paranim - 一个围绕精心选择的抽象构建的游戏库。

游戏引擎

  • NimForUE - 适用于UE5的Nim插件,具备原生性能、热重载功能和完整的互操作性,可在C++与蓝图之间发挥桥梁作用。
  • nimgame2 - 一款适用于Nim的简单2D游戏引擎。
  • norx - ORX 2.5D跨平台游戏引擎库的完整封装。
  • godot-nim - Godot引擎的Nim绑定。
  • rod - 跨平台2D和3D游戏引擎。
  • frag - 跨平台2D/3D游戏引擎。
  • semicongine - 跨平台、(几乎)无依赖的游戏引擎。
  • saohime - 一款受Bevy Engine启发的、适用于Nim的可扩展2D游戏引擎。
  • alasgar - 基于OpenGL的纯Nim 3D游戏引擎。

规则引擎

  • turn_based_game - 用于模拟或进行回合制游戏的游戏规则引擎。
  • pararules - 一款为游戏打造的基于RETE算法的规则引擎。

开发工具

编辑器集成

  • Editor Support - 官方Nim编辑器插件列表。
  • nimlsp - Nim的语言服务器协议(LSP)实现。
  • nim.nvim - 适用于NeoVim的Nim插件。
  • vscode-nim - 适用于VS Code的Nim编程语言支持。

REPL(交互式解释器)

  • INim - 交互式Nim Shell。
  • jupyternim - 适用于Nim的Jupyter内核。
  • Reploid - 运行于nim cnimscript虚拟机之上的Nim REPL,支持import [anything]

绑定生成器

  • c2nim - c2nim是一款将ANSI C代码转换为Nim代码的工具。
  • nimgen - nimgen是c2nim的辅助工具,用于简化和自动化C库的封装。已被nimterop取代。
  • nimterop - 一个利用tree-sitter实现无缝C/C++互操作的Nim包。已被Futhark取代。
  • Futhark - 使用libclang自动封装C头文件到Nim的工具。
  • nimpy - 生成Python包装器并从Nim调用Python。
  • jnim - Nim - Java桥接工具。

构建系统 / 包管理

  • Atlas - Atlas 包克隆工具。它管理一个包含项目和依赖项的隔离工作区。
  • ChooseNim - 安装和切换不同 Nim 版本(类似 rustup、pyenv)。
  • GrabNim - 安装并在多个 Nim 编译器版本之间切换。(ChooseNim 的替代方案)。
  • Nake - 将您的 Nim 构建描述为任务。
  • Nawabs - 一种构建系统,它摒弃了版本号,转而采用 git 哈希值。
  • Nimble - Nimble 可用作构建系统。
  • nimph - 来自未来的 Nim 包层次结构管理器。
  • nimby - 一个非常简单的非官方 Nim 包管理器。
  • nifty - 一个去中心化的伪包管理器和脚本运行器。
  • nsis - Nim 编程语言安装工具。

日志记录

  • chronicles - 一个精巧的 Nim 结构化日志实现。
  • kslog - 用于 Linux 的极简内核系统日志守护进程(用 Nim 编写)。
  • threadlogging - 一个线程安全的日志库,使用 Nim 自带的日志模块。

测试

  • faker - 一个为您生成虚假数据的 Nim 包。
  • balls - 一个用于拯救世界,或者至少拯救您周日的单元测试宏。
  • einheit - 一个受 Python 单元测试启发的 Nim 单元测试库。
  • asynctest - 补充 Nim 标准 unittest 模块,允许测试异步代码。
  • unittest2 - "unittest" Nim 模块的分支,专注于并行测试执行、测试级作用域和严格的异常处理。

模糊测试

  • drchaos - 一个功能强大且易于使用的 Nim 模糊测试框架,适用于 C/C++/Obj-C 目标。
  • libfuzzer - LibFuzzer 的接口绑定。

基准测试

  • benchy - 用于代码计时的简单基准测试工具。
  • golden - 针对 Nim 编译时和/或运行时的基准测试工具。
  • timeit - 用 Nim 编写的执行时间测量工具。
  • criterion - 基于统计的微基准测试框架。
  • stopwatch - rbmz's stopwatch 的分支版本,增加了额外功能。
  • nimbench - Nim 的微基准测试模块。

命令行界面自动化

  • cligen - 推断并生成命令行界面/选项/参数解析器。
  • docopt.nim - 命令行参数解析器。
  • argparse - Nim 的参数解析库。
  • clapfn - 类似于 Python argparse 的参数解析库。
  • cliche - 自动神奇的 CLI 参数解析已是老生常谈。
  • loki - 用于编写面向行的命令解释器的小型库。
  • confutils - 简化命令行选项和配置文件的处理。
  • Cmdos - 处理命令行参数和帮助消息的简单方法。
  • cozycliparser - 基于 std/parseopt 的轻量级、功能丰富且无 DSL 的 CLI 解析器。文档
  • Cliquet - 一个 CLI 参数和配置文件解析器,将两者合并为一个对象,并支持自动生成帮助信息。

静态分析

  • DrNim - 将 Nim 前端与 Z3 证明引擎相结合,用于软件的验证与确认。
  • nimalyzer - 受 AdaControl 启发的 Nim 静态代码分析工具。

资源

书籍

  • Nim in Action - Manning 出版社“实战系列”书籍,通过 3 个实用项目(包括 CLI 聊天应用、Web 应用和解析器)教授 Nim 编程。
  • Computer Programming with Nim - Nim 编程语言的入门指南。
  • Nim Basics - 面向初学者和刚接触 Nim 的人士的教程。
  • Nim Style Guide - Status 团队的 Nim 语言风格指南。
  • Mastering Nim - Nim 编程语言完全指南。

博客

社区

教程

  • Nim Days - 该项目记录了我学习 Nim 的历程,包含小型应用程序、从入门到精通的库文档,同时也为新的 Nim 用户提供一些额外的深入信息。
  • How I start - 出色的指南,从零基础开始,先实现一个 bf 解释器,然后再开发一个 bf 到 Nim 的编译器。
  • Learn Nim in Y minutes - 快速概览。
  • Nim by Example - 一系列用于学习 Nim 编程语言的页面和示例。
  • Nim for Python programmers - 为有 Python 经验的人准备的 Nim 指南。
  • Nim on Rosetta Code - 数千个使用 Nim 解决各种任务的方案。
  • Nim Memory - 一个小型教程,解释 Nim 如何在内存中存储数据。
  • Nim ARC - 对 ARC 及其对程序员影响的友好解释。
  • nimNx - 一个用 Nim 编写的任天堂 Switch 自制程序示例项目。
  • nimNxStatic - 一个静态库示例,旨在帮助将 Nim 代码集成到当前的任天堂 Switch 自制 C 项目中

视频


脚注

Awesome-Nim 徽标基于 Joseph Wecker 设计的 "Nim Crown" 徽标,并经 Nim 项目许可使用。

Introduction

一份精心策划的杰出Nim框架、库、软件及资源列表。【此简介由AI生成】

Customize your domain
351.52 K91Visit GitHub