Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. upper.io/db

upper.io/db

MITGov4.10.0

A productive data access layer for Go with ORM-like features, supporting PostgreSQL, MySQL, SQLite, MongoDB, and more.

Visit WebsiteGitHubGitHub
3.7k stars239 forks0 contributors

What is upper.io/db?

upper/db is a data access layer for Go that provides agnostic tools to work with different data sources like PostgreSQL, MySQL, SQLite, and MongoDB. It offers ORM-like features to simplify database interactions, allowing developers to write database-agnostic code with a unified API. The project solves the problem of vendor lock-in and reduces the complexity of managing multiple database systems in Go applications.

Target Audience

Go developers building applications that need to interact with multiple database systems or require flexible, database-agnostic data access layers. It's also suitable for teams looking to simplify database operations with ORM-like productivity tools.

Value Proposition

Developers choose upper/db for its multi-database support and consistent API, which reduces the learning curve and maintenance overhead when switching between different data sources. Its ORM-like features provide productivity benefits without the full complexity of traditional ORMs, making it a lightweight and practical choice for Go projects.

Overview

Data Access Layer (DAL) for PostgreSQL, CockroachDB, MySQL, SQLite and MongoDB with ORM-like features.

Use Cases

Best For

  • Building Go applications that need to support multiple database backends
  • Simplifying database interactions with a unified, ORM-like interface
  • Reducing vendor lock-in by using database-agnostic data access code
  • Learning database operations in Go with live, interactive examples
  • Developing microservices or APIs that require flexible data storage options
  • Migrating between different database systems without rewriting data access logic

Not Ideal For

  • Projects requiring advanced ORM features like automatic schema migrations or complex relationship handling
  • Applications heavily reliant on database-specific SQL extensions or performance optimizations
  • Teams looking for a zero-dependency library without external adapter maintenance

Pros & Cons

Pros

Multi-Database Support

Supports PostgreSQL, MySQL, MSSQL, CockroachDB, MongoDB, QL, and SQLite through adapters, as explicitly listed in the README, enabling flexible backend choices.

ORM-Like Productivity

Provides tools similar to object-relational mappers, simplifying database interactions without full ORM complexity, aligning with its philosophy of productivity and simplicity.

Agnostic Data Access

Offers a consistent API across different data sources, reducing vendor lock-in and allowing developers to write database-agnostic code, as highlighted in the key features.

Interactive Learning Resources

Includes a live tour with real-time code samples in the browser, making it easy for developers to learn and experiment with the library directly from the README.

Cons

Limited Adapter Ecosystem

The adapter list is fixed and may not support newer or niche databases, requiring custom development for unsupported backends, which adds complexity.

Performance Overhead Risk

The abstraction layer for database-agnostic operations can introduce overhead, potentially impacting performance in high-throughput scenarios compared to native drivers.

External Documentation Dependency

Documentation is hosted on upper.io/v4, not integrated into the GitHub repo, which may lead to accessibility issues or outdated information if not maintained separately.

Frequently Asked Questions

Quick Stats

Stars3,655
Forks239
Contributors0
Open Issues155
Last commit4 months ago
CreatedSince 2013

Tags

#orm#database#nosql#mongodb#postgresql#data-access-layer#golang#mysql#sqlite#go#db#cockroachdb#sql

Built With

G
Go

Links & Resources

Website

Included in

Go169.1k
Auto-fetched 1 day ago

Related Projects

GORMGORM

The fantastic ORM library for Golang, aims to be developer friendly

Stars39,705
Forks4,146
Last commit1 month ago
entent

An entity framework for Go

Stars17,036
Forks997
Last commit10 days ago
SQLBoilerSQLBoiler

Generate a Go ORM tailored to your database schema.

Stars6,988
Forks560
Last commit1 month ago
bunbun

SQL-first Golang ORM

Stars4,768
Forks274
Last commit16 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub