GitHub

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.

Read the original on github.com ↗