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.

❤ Contributors ❤

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