A curated list of awesome Nim frameworks, libraries, software and resources.
This repository is empty
Translated by AI, submit an issue feedback
精选的 Nim 框架、库、软件及资源列表。
Nim 是一种静态类型编译型系统编程语言。适用于从 shell 脚本到 Web 前后端,再到机器学习、高性能计算和嵌入式开发等各种场景。
目录
语言特性
实现版本
标准库
Nim 提供了独特的特性,可与其他技术实现无缝且透明的互操作性。一些用户发现,让其他标准库能够从 Nim 中使用是很有用的。
此外,与上述需要运行时依赖的库不同,还有一些纯 Nim 库已被实现。
- pylib - Python 内置函数、库和语法糖的纯 Nim 实现。
包仓库
- Nim packages - Nimble 的包列表。
- Nim package directory - 浏览 Nimble 已知的 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 中选项的实用宏。
契约
面向对象编程
- 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 实现。
脚本编写
系统工具
备份
- norg - borg 和 restic 的便携式包装器。
Prometheus 导出器
- node-exporter-lite - node_exporter 的超轻量级替代品。
- unbound-exporter-lite - unbound_exporter 的超轻量级替代品。
硬件
嵌入式
- 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 文档写入器。
算法
数学
符号计算
- symbolicnim - 纯 Nim 编写的符号计算库。
快速傅里叶变换(FFT)
- impulse - Impulse 将成为信号处理(FFT、卷积)原语的集合。
向量
矩阵
深度学习
- Arraymancer - 一个快速、易用且便携的 Nim 张量库,专注于深度学习,适用于 CPU、GPU、OpenCL 和嵌入式设备。
- NimTorch - PyTorch 的 Python 与 Nim 结合体。PyTorch 原生后端的 Nim 前端,将 Nim 的速度、生产力和便携性与 PyTorch 的最新实现相结合。
- laser - 精心优化的基元,用于在 CPU、GPU 和加速器上运行张量和图像处理代码。
大整数
密码学
- 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
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
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 实现。
多播
- nimMulticast - 简化的 UDP 多播实现。
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 服务器
框架
- 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 c或nimscript虚拟机之上的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 模块的分支,专注于并行测试执行、测试级作用域和严格的异常处理。
模糊测试
基准测试
- 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 参数和配置文件解析器,将两者合并为一个对象,并支持自动生成帮助信息。
静态分析
资源
书籍
- 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 Blog - Nim 官方博客。
- Goran Krampe - 内容涵盖 C 语言封装、Arduino、性能优化及相关链接。
- HookRace - 包含多篇关于 Nim 的文章的博客。
- Rants from the Ballmer Peak - 关于 Nim 及其他语言的文章。
- Yuriy Glukhov's blog - 讲述使用 Nim 制作并发布游戏的过程。
- Araq's Musings - Nim 创始人的个人博客。
- Nim on dev.to -
dev.to平台上的 Nim 相关博客。
社区
- The Nim forum - Nim 论坛
- The Nim IRC channel - Nim IRC 频道
- The Nim Gitter channel - Nim Gitter 频道
- The Nim Discord channel - Nim Discord 频道
- The Nim mailing list (forum archive) - Nim 邮件列表(论坛存档)
- The Nim subreddit - Nim Reddit 社区
- The Nim Telegram - Nim Telegram 群组
- The Nim Telegram in Spanish - 西班牙语 Nim Telegram 群组
- The Nim Matrix room - Nim Matrix 聊天室
教程
- 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 项目中
视频
- Nim's Official Channel - 官方视频介绍 Nim 语言中强大且有趣的部分。
- Nim for Beginners - 这是一个视频系列,旨在向从未编程过或刚接触 Nim 的人教授如何使用 Nim 编程。
- Make a website with Nim - 这是一个视频系列,旨在教人们使用
jester用 Nim 制作网站。 - Learning Nim - 学习 Nim 的教程视频系列,展示了该语言及其库的各种特性。
- araq twitch - 关于 Nim 语言的直播。
- alehander42 twitch - 关于 Nim 语言的直播。
- clyybber twitch - 关于 Nim 语言的直播。
- d0m96 twitch - 关于 Nim 语言的直播。
- disruptek twitch - 关于 Nim 语言的直播。
- Nim Tutorials - YouTube 视频系列,教授如何用 Nim 编程,并介绍各种标准库。
脚注
Awesome-Nim 徽标基于 Joseph Wecker 设计的 "Nim Crown" 徽标,并经 Nim 项目许可使用。