A productive data access layer for Go with ORM-like features, supporting PostgreSQL, MySQL, SQLite, MongoDB, and more.
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.
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.
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.
Data Access Layer (DAL) for PostgreSQL, CockroachDB, MySQL, SQLite and MongoDB with ORM-like features.
Supports PostgreSQL, MySQL, MSSQL, CockroachDB, MongoDB, QL, and SQLite through adapters, as explicitly listed in the README, enabling flexible backend choices.
Provides tools similar to object-relational mappers, simplifying database interactions without full ORM complexity, aligning with its philosophy of productivity and simplicity.
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.
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.
The adapter list is fixed and may not support newer or niche databases, requiring custom development for unsupported backends, which adds complexity.
The abstraction layer for database-agnostic operations can introduce overhead, potentially impacting performance in high-throughput scenarios compared to native drivers.
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.
The fantastic ORM library for Golang, aims to be developer friendly
An entity framework for Go
Generate a Go ORM tailored to your database schema.
SQL-first Golang ORM
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.