Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gnormal/gnorm

A database-first code generator for any language
https://github.com/gnormal/gnorm

code-generation database database-schema mysql orm postgres sql

Last synced: 2 months ago
JSON representation

A database-first code generator for any language

Awesome Lists containing this project

README

        

[![Build Status](https://travis-ci.com/gnormal/gnorm.svg?branch=master)](https://travis-ci.com/gnormal/gnorm)

GNORM


GNORM is Not an ORM.

## About

Gnorm converts your database's schema into in-memory data structures which you
can then feed into your own templates to produce code or documentation or
whatever.

Gnorm is written in Go but can be used to generate any kind of textual output -
ruby, python, protobufs, html, javascript, etc.

Gnorm uses templates you control, so that you can make the output look exactly
how you want it to look. It can be used to generate type-safe database queries
that are faster than a traditional ORM. It can also be used to create a REST or
RPC API that exposes the data in your database.

## Documentation

[https://gnorm.org](https://gnorm.org)

## Installing

Gnorm has no dependencies, just download and run the executable for your
operating system. See our [latest release](https://github.com/gnormal/gnorm/releases/latest).

## Building

__Note:__ Gnorm uses a go vanity url. To install with go get, run

```
go get gnorm.org/gnorm
```

However, using go get to install will mean that `gnorm version` doesn't report
the correct data, and `gnorm docs` won't show you the docs in your browser.

For best results, use the [magefile](https://github.com/magefile/mage) in the
root of the repo, which will do all the build-time magic. To run it, install
mage, then just run mage build.

```
$ go get github.com/magefile/mage
$ mage build
```

If you want to git clone instead (which should work fine since we vendor all
dependencies), make sure you git clone into `$GOPATH/src/gnorm.org/gnorm`.

## Discussion

If you have questions about Gnorm or want to hack on it, meet the devs on the
`#gnorm` channel of [gopher slack](https://gophers.slack.com/).

There's also the `#gnorm-dev` channel which has github integrations showing the
work going on.

## Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md)