Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

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


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


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

  • See the issues on GitHub.

  • Run the tests before and after you change the code.

    The recommended way to run the tests is 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 startContainers sudo                           # Stops docker container using sudo
  • 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.


Norm would not be where it is today without the efforts of these fine folks: