norm

A Nim ORM for SQLite and Postgres

Active Pure Nim score 85/100 · last commit 2026-08-05 · 416 stars · tests present · no docs generated

Summary

Latest Version Unknown
License MIT
CI Status Failing
Stars 416
Forks 37
Open Issues 21
Last Commit 2026-08-05
Downloads 0
Last Indexed 2026-09-06 06:05

Installation

nimble install norm
choosenim install norm
git clone https://github.com/moigagoo/norm

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
norm - - - - - - -

Source

Repository https://github.com/moigagoo/norm
Homepage https://moigagoo.github.io/norm/
Registry Source github

README

Welcome to Norm!

Norm is an object-driven, framework-agnostic ORM for Nim that supports SQLite and PostgreSQL.

  • Documentation (built with nimibook)
  • API index
  • norman: scaffolder and migration manager for Norm
  • shopapp: a proof-of-concept for a webapp created with Karax for frontend, Jester for API server, Norm for ORM, and Norman for migration management

Installation

Install Norm with Nimble:

$ nimble install -y norm

Add Norm to your .nimble file:

requires "norm"

Norm requires Nimble 0.14.0 sonmake sure you have the latest Nimble installed by running:

$ nimble install -y nimble

Contributing

Any contributions are welcome: pull requests, code reviews, documentation improvements, bug reports, and feature requests.

The recommended way to run the tests is via Docker Compose:

$ docker compose run tests_common
$ docker compose run tests_sqlite
$ docker compose run tests_postgres

Alternatively, run the tests natively via nimble commands:

$ nimble startContainers # Starts docker containers needed for testing
$ nimble startContainers sudo # Starts docker containers using sudo

$ nimble allTests # run all test suites
$ nimble singleTest tests/common/tmodel.nim # run a single/list of test suite/s

$ nimble stopContainers # Stops and shuts down docker-containers
$ nimble stopContainers sudo # Stops docker container using sudo

To build the docs locally, run:

$ docker compose run docs
$ docker compose run book
  • Use camelCase instead of snake_case.

  • New procs must have a documentation comment. If you modify an existing proc, update the comment.

  • Apart from the code that implements a feature or fixes a bug, PRs are required to ship necessary tests and a changelog updates.

❤ Contributors ❤

Norm would not be where it is today without the efforts of these fine folks: https://github.com/moigagoo/norm/graphs/contributors.