Awesome Open Source
Awesome Open Source

Build Status


GNORM is Not an ORM.


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.



Gnorm has no dependencies, just download and run the executable for your operating system. See our latest release.


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

go get

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 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
$ 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/


If you have questions about Gnorm or want to hack on it, meet the devs on the #gnorm channel of gopher slack.

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



Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Go (198,300
Mysql (12,508
Database (9,760
Sql (7,308
Postgres (2,270
Orm (2,110
Code Generation (974
Database Schema (146
Related Projects