README.md

    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.

    • 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.