{"id":29108754,"url":"https://github.com/brunotm/norm","last_synced_at":"2026-04-29T04:35:23.568Z","repository":{"id":44899156,"uuid":"395580230","full_name":"brunotm/norm","owner":"brunotm","description":"A no frills, no bloat, no magic Go package for working with SQL code, databases and migrations.","archived":false,"fork":false,"pushed_at":"2023-07-20T10:07:41.000Z","size":79,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-06-21T09:51:34.367Z","etag":null,"topics":["database","go","golang","sql"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brunotm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-13T08:46:30.000Z","updated_at":"2021-12-07T09:23:09.000Z","dependencies_parsed_at":"2024-06-21T08:44:26.967Z","dependency_job_id":"8bbcabad-5374-48d4-a236-1876f5d62273","html_url":"https://github.com/brunotm/norm","commit_stats":null,"previous_names":["brunotm/statement"],"tags_count":24,"template":false,"template_full_name":null,"purl":"pkg:github/brunotm/norm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunotm%2Fnorm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunotm%2Fnorm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunotm%2Fnorm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunotm%2Fnorm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brunotm","download_url":"https://codeload.github.com/brunotm/norm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunotm%2Fnorm/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262548863,"owners_count":23327430,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","go","golang","sql"],"created_at":"2025-06-29T06:37:36.591Z","updated_at":"2026-04-29T04:35:23.507Z","avatar_url":"https://github.com/brunotm.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# norm (NoORM)\n\n[![Build Status](https://github.com/brunotm/norm/actions/workflows/test.yml/badge.svg)](https://github.com/brunotm/norm/actions)\n[![Go Report Card](https://goreportcard.com/badge/brunotm/norm?cache=0)](https://goreportcard.com/report/brunotm/norm)\n[![go.dev reference](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go\u0026logoColor=white\u0026style=flat-square)](https://pkg.go.dev/github.com/brunotm/norm)\n[![Apache 2 licensed](https://img.shields.io/badge/license-Apache2-blue.svg)](https://raw.githubusercontent.com/brunotm/norm/master/LICENSE)\n\n\nThis repository provides a **no frills, no bloat and no magic** collection of utilities for working with SQL code and databases\nin Go. It **relies solely on standard library packages** and focuses on simplicity, stability and performance.\n\n# Packages\n\n## [norm/statement](statement/README.md)\n\nA simple and performant SQL query builder for Go which doesn't hide or obscures SQL code and\nlogic but rather makes them explicit and a fundamental part of the application code.\n\nIt handles the all parameter interpolation at the package level using the `?` placeholder, so\nqueries are mostly portable across databases.\n\n### Features\n\n\t* Select\n\t\t* Comment\n\t\t* Columns\n\t\t* From (table or statement.SelectStatement)\n\t\t* Join\n\t\t* Where\n\t\t* WhereIn\n\t\t* With (statement.SelectStatement)\n\t\t* WithRecursive (statement.SelectStatement)\n\t\t* Having\n\t\t* GroupBy\n\t\t* Order\n\t\t* Limit\n\t\t* Offset\n\t\t* Distinct\n\t\t* ForUpdate\n\t\t* SkipLocked\n\t\t* Union (statement.SelectStatement)\n\t\t* UnionAll (statement.SelectStatement)\n\t* Insert\n\t\t* Comment\n\t\t* Into\n\t\t* With (statement.SelectStatement)\n\t\t* Returning\n\t\t* Record (from struct)\n\t\t* ValuesSelect (statement.SelectStatement)\n\t\t* OnConflict\n\t* Update\n\t\t* Comment\n\t\t* Table\n\t\t* Set\n\t\t* SetMap\n\t\t* With (statement.SelectStatement)\n\t\t* Where\n\t\t* WhereIn\n\t\t* Returning\n\t* Delete\n\t\t* Comment\n\t\t* From\n\t\t* With (statement.SelectStatement)\n\t\t* Where\n\t\t* WhereIn\n\t\t* Returning\n\t* DDL\n\t\t* Comment\n\t\t* Create\n\t\t* Alter\n\t\t* Truncate\n\t\t* Drop\n\n\n## [norm/database](database/README.md)\n\nA safe sql.DB wrapper which enforces transactional access to the database, transaction query caching and operation logging and plays nicely with `norm/statement`.\n\n### Features\n\n\t* Contextual operation logging\n\t* Transactional access with default isolation level\n\t* Cursor for traversing large result sets\n\t* Row scanning into structs or []struct\n\t* Transaction scoped query caching\n\t* Transaction ids for request tracing\n\n## [norm/migrate](migrate/README.md)\n\nA simple database migration package which does the necessary, not less, not more.\n\n### Features\n\n\t* Migration sequence management\n\t* Migrate Up/Down/Apply(\u003cversion\u003e)\n\t* Apply/discard migrations\n\t* Transactional apply/discard migrations\n\n## Motivation\n\nI like simple, efficient and clean code. There is too much ORM stuff floating around these days.\n\n### Install\n```shell\ngo get -u -v github.com/brunotm/norm\n```\n\n## Test\n\n```shell\ngo test -v -cover ./...\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrunotm%2Fnorm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrunotm%2Fnorm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrunotm%2Fnorm/lists"}