For data access layers, the strongest matches are go-gorm/gorm (GORM is a fully-featured object-relational mapping framework for Go), mikro-orm/mikro-orm (Mikro-ORM is a comprehensive TypeScript ORM for Node) and tgriesser/knex (Knex is a programmatic SQL query builder and schema). typeorm/typeorm and tencent/wcdb round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Hand-picked open-source data access layers for your next project. Compare top GitHub repositories by stars, features, and activity to find the right fit.
GORM is a developer-focused object-relational mapping library for Go that provides a comprehensive data persistence framework. It serves as a database access layer, allowing developers to map application structures to database tables and perform CRUD operations using a fluent, type-safe query builder instead of writing raw SQL. The library distinguishes itself through its association-aware persistence, which automatically tracks and synchronizes complex entity relationships during database operations. It utilizes a driver-agnostic interface to maintain consistent behavior across various stora
GORM is a fully-featured object-relational mapping framework for Go that provides a fluent query builder, connection pooling, migrations, and robust data access capabilities, directly matching your need for a structured database interaction layer.
Mikro-ORM is a TypeScript-based object-relational mapping system that provides a unified persistence layer for Node.js applications. It translates TypeScript entities into relational or document-based database schemas, supporting a variety of engines including PostgreSQL, MySQL, MariaDB, MS SQL Server, SQLite, and MongoDB. The project implements the data mapper pattern to decouple in-memory domain models from the database persistence layer. It utilizes a unit of work pattern to track entity changes in memory and commit them in a single coordinated database transaction. The library covers com
Mikro-ORM is a comprehensive TypeScript ORM for Node.js that provides object-relational mapping, database migrations, connection pooling, multi-database support, and a structured repository-based persistence layer.
Knex is a programmatic SQL query builder for Node.js applications. It provides a unified interface for generating database statements and managing structural versioning through a schema migration tool. The project features a multi-dialect database layer that translates programmatic queries into specific syntax for relational databases including PostgreSQL, MySQL, SQLite3, and MSSQL. This allows for writing database logic that remains compatible across different systems. The system includes infrastructure for managing reusable database connection pools and handling relational transactions to
Knex is a programmatic SQL query builder and schema migration tool for Node.js that serves as a core database abstraction layer, though it omits full object-relational mapping.
TypeORM is an object-relational mapper for TypeScript and JavaScript that bridges the gap between object-oriented application code and relational database tables. It provides a comprehensive data persistence layer that allows developers to define database entities using class decorators or configuration objects, enabling seamless interaction with data through object-oriented patterns. The project distinguishes itself through a flexible architecture that supports both the data mapper and repository patterns, alongside a fluent query builder that translates high-level method calls into platform
TypeORM is an object-relational mapping framework for TypeScript and JavaScript that provides a comprehensive data persistence layer, query builder, database migrations, connection pooling, and multi-database support.
WCDB is a cross-platform storage layer and embedded database engine that serves as a framework for SQLite. It functions as an object relational mapper, linking application classes to database tables to enable data operations via objects rather than raw queries. The project is distinguished by an integrated encryption layer for securing data at rest and a full-text search engine that uses language-specific tokenizers for text lookups. It also features transparent field compression to reduce storage footprints and a connection-pooling model to coordinate simultaneous read and write operations a
WCDB provides an embedded database engine and object-relational mapping layer for mobile and desktop applications, though it is specifically optimized as an SQLite extension rather than a general multi-database ORM framework.
This project is a database access layer for PHP that provides a consistent interface for interacting with multiple relational database management systems. It functions as a unified abstraction layer, enabling developers to connect to various SQL databases and perform data operations through a standardized command set. The library distinguishes itself by utilizing a fluent query builder that allows for the programmatic construction of complex SQL statements. It further abstracts database interactions through a schema definition language, which enables the creation, modification, and management
This PHP library serves as a database access layer and query builder, fulfilling the core category requirements even though it lacks built-in object-relational mapping.
Sequelize is an object-relational mapping library that provides a unified interface for managing relational data through code. By implementing the Active Record pattern, it maps database tables to application objects, allowing developers to perform standard create, read, update, and delete operations using high-level method calls. The library abstracts complex database interactions by translating these calls into optimized, engine-specific SQL statements, ensuring consistent behavior across different database systems. The project distinguishes itself through a comprehensive suite of tools for
Sequelize is a prominent TypeScript object-relational mapping library that supports multiple relational databases, connection pooling, migrations, and query building, though it leans towards the Active Record pattern rather than strictly enforcing a repository pattern.
Knex is a multi-dialect database client that provides a programmatic SQL query builder, a connection pool manager, and a versioned schema migration tool. It enables programmatic database interaction across multiple SQL engines, including PostgreSQL, MySQL, SQLite3, SQL Server, CockroachDB, and Oracle. The project distinguishes itself through a fluent interface for constructing complex SQL statements and a dedicated framework for database seeding. It utilizes specialized dialects to translate generic query representations into database-specific syntax while maintaining a consistent API across
Knex is a multi-dialect database client and programmatic SQL query builder that handles migrations and connection pooling, making it a strong fit for the requested data access tooling despite lacking built-in object-relational mapping.
Hibernate ORM is a Java object-relational mapper and a full implementation of the Jakarta Persistence API. It serves as a SQL database abstraction layer that translates Java object models into relational database schemas to manage data persistence and lifecycles. The framework distinguishes itself with a multi-tenant data isolation framework for separating customer data within a single database instance. It also features a database schema generator that automatically produces and updates relational structures based on entity mappings. The system covers broad capability areas including transa
Hibernate ORM is a comprehensive Java-based persistence and object-relational mapping framework that provides database abstraction, schema generation, and transaction management, directly matching your need for a structured data access layer.
Ebean is a Java object-relational mapping framework designed to simplify database persistence through automated query generation, schema migration, and transaction management. It uses metadata-driven mapping and bytecode enhancement to bridge the gap between application objects and relational database tables, providing a persistent layer that handles complex data interactions while maintaining consistency across unit-of-work boundaries. The framework distinguishes itself through its focus on developer productivity and performance optimization. It provides type-safe query builders that generat
Ebean is a Java object-relational mapping framework that provides automated query generation, schema migration, and transaction management, matching your need for a structured data access layer.
Prisma is a database toolkit that provides a unified access layer for interacting with relational and document databases. It centers on a declarative schema modeling approach, where developers define their data structures in a human-readable language. This schema serves as the single source of truth, from which the toolkit automatically generates type-safe database clients that provide compile-time validation and editor autocomplete for all data operations. The project distinguishes itself through a high-performance, Rust-based query engine that handles query planning and connection pooling o
Prisma is a comprehensive object-relational mapping and data access toolkit featuring schema-based modeling, type-safe query generation, connection pooling, and multi-database support that fits the required data access architecture.
This project is an asyncio database abstraction layer that provides a common interface for performing non-blocking database operations in Python. It functions as an asynchronous database driver wrapper and a SQL expression builder, allowing for the construction of raw SQL strings from structured Python objects. The library includes an asyncio connection pool manager that utilizes task-local storage to handle connection lifecycles and reduce resource overhead. It also serves as an async database transaction manager, wrapping operations in atomic transactions and savepoints to maintain data int
This asynchronous database abstraction layer provides connection pooling and query building for Python, fitting the data access layer category well despite lacking a traditional object-relational mapping layer.
Sequel is a relational database toolkit for Ruby that provides object-relational mapping, a fluent SQL query builder, and schema migration capabilities. It maps database tables to Ruby classes with support for associations, validations, lifecycle hooks, and eager loading, offering a comprehensive ORM layer for building data-centric applications. Sequel distinguishes itself through a plugin-based extension architecture that allows composable customization of models, databases, and datasets without relying on deep inheritance hierarchies. It includes a thread-safe connection pool with support f
Sequel is a relational database toolkit and ORM for Ruby that provides schema migrations, a fluent query builder, connection pooling, and multi-database support to structure data access.
Entity Framework Core is an object-relational mapper that enables developers to interact with database systems using strongly-typed code. It serves as a comprehensive data access framework, providing a unified interface for mapping application objects to relational and non-relational database schemas while managing the lifecycle of data operations through a central context. The project distinguishes itself through a provider-based architecture that decouples core data access logic from specific database engines, allowing for consistent interaction across diverse storage systems. It features a
Entity Framework Core is a comprehensive object-relational mapping and data access framework for .NET that provides query building, database migrations, connection pooling, and multi-database support out of the box.
SQLAlchemy is a comprehensive Python SQL toolkit and object-relational mapper that provides a full suite of tools for interacting with relational databases. It serves as a foundational layer for database connectivity, offering both a high-level object-oriented interface for data persistence and a programmatic SQL expression language for constructing complex, dialect-agnostic queries. The project distinguishes itself through its sophisticated unit of work persistence, which coordinates atomic transactions and tracks object state changes to minimize redundant database operations. It provides a
SQLAlchemy is a comprehensive Python object-relational mapper and SQL toolkit that provides a complete suite for data access, featuring an ORM, query builder, connection pooling, and multi-database support.
Doctrine ORM is a PHP object-relational mapper that connects application objects to relational database tables. It uses the data mapper and identity map patterns to decouple the in-memory object model from the database schema, allowing developers to manage data persistence without writing manual SQL. The project features a dedicated object-oriented query language and programmatic builder for retrieving data based on entities rather than tables. It implements a unit-of-work system to track object changes during a request and synchronize them via atomic transactions. The capability surface inc
Doctrine ORM is a comprehensive PHP object-relational mapper and data persistence framework that provides query building, unit-of-work tracking, and database mapping to abstract relational databases cleanly.
This project is a type-safe database toolkit and object-relational mapper designed to enforce structural consistency between database schemas and application code. By leveraging compile-time validation, it ensures that SQL queries and data structures remain synchronized, preventing common errors before the application executes. It provides a comprehensive framework for relational data modeling, allowing developers to define table associations and map database results directly into strongly-typed language objects. The library distinguishes itself through its focus on compile-time safety and au
Diesel is a type-safe ORM and query builder for Rust that provides compile-time safety and schema validation, though it lacks built-in connection pooling and requires external crates for that capability.
GRDB.swift is a comprehensive SQLite toolkit and object-relational mapper for Swift. It provides a database wrapper that handles local data persistence, connection management, and encrypted file storage for Apple platforms. The library features a dedicated observation framework that tracks database changes to automatically synchronize the application state and user interface in real time. It distinguishes itself with a type-safe query builder and a protocol-based mapping system that converts database rows into structured Swift objects. The toolkit covers a broad range of administrative and o
GRDB.swift provides object-relational mapping, a type-safe query builder, schema migrations, and connection pooling for Swift applications, making it a targeted data access toolkit despite its narrow focus on SQLite.
This toolkit provides an asynchronous interface for interacting with relational databases, offering a unified driver-agnostic layer for managing connection pools and executing transactions. It is designed to integrate with asynchronous runtimes, enabling non-blocking database operations while maintaining secure, encrypted communication between the application and the database server. The project distinguishes itself through its compile-time validation capabilities, which use procedural macros to inspect SQL syntax and parameter types against a live database schema during the build process. Th
This toolkit provides asynchronous database access, connection pooling, and migration support, though it relies on raw SQL queries with compile-time validation rather than a traditional object-relational mapping interface.
Sea-ORM is an asynchronous SQL object-relational mapper and database toolkit for mapping relational tables to strongly typed objects. It provides a relational database mapper for performing CRUD operations across MySQL, PostgreSQL, and SQLite, and includes a programmatic dynamic query builder for constructing complex SQL statements. The project distinguishes itself by providing a GraphQL schema generator that transforms database entities into typed schemas with built-in pagination and filters. It also features a dedicated database migration tool for defining and applying versioned schema chan
Sea-ORM is an asynchronous object-relational mapper and SQL toolkit for Rust that provides query building, entity mapping, and database migrations, fitting this data access layer requirement well though lacking built-in support for the repository pattern out of the box.
MyBatis is a Java persistence framework that functions as a database query mapper and object-relational mapping tool. It decouples SQL statements from application code, allowing developers to manage database interactions by mapping Java objects to relational database records. The framework provides a centralized approach to SQL query management, enabling the use of either XML configuration files or annotations to define persistence logic. It automates the transformation of database result sets into structured objects, which eliminates the need for manual data conversion and reduces repetitive
MyBatis is a Java persistence framework that maps objects to SQL statements, though it uses explicit query mapping rather than traditional full ORM and relies on external libraries or tools for migrations and connection pooling.
SQLite.swift is a type-safe Swift wrapper and object-relational mapping layer that provides a bridge for interacting with SQLite databases. It functions as a database driver that allows for embedded database management and local data persistence within Swift applications. The project distinguishes itself through a type-safe expression builder that verifies SQL statement syntax and intent at compile time. It includes specialized support for high-performance text matching via full-text search integration and provides mechanisms for securing sensitive data through database encryption. The libra
SQLite.swift is a type-safe Swift wrapper and object-relational mapping layer that provides a structured interface for SQLite databases, though it is scoped to SQLite rather than general multi-database support.
Objection.js is an object-relational mapper for Node.js that maps SQL database tables to classes and rows to model instances. It functions as a high-level abstraction layer built on top of the Knex.js query builder to provide structured model definitions and relational data mapping. The project distinguishes itself through its ability to manage complex object graphs, allowing for the persistence and eager-loading of deeply nested related data in single operations. It incorporates a data integrity layer that uses JSON schema validation to verify model instances before they are persisted to the
Objection.js is an object-relational mapping framework for Node.js built on Knex.js that provides structured data modeling, relationship management, and query building capabilities, though it relies on its underlying builder for migrations and connection pooling.
Peewee is a SQL object-relational mapper and query builder that provides an object-oriented interface for mapping application classes to relational database tables. It functions as a relational database toolkit for managing schemas, executing migrations, and handling complex table relationships. The project distinguishes itself by providing an asyncio database driver for non-blocking database operations, ensuring event loop responsiveness. It also supports semi-structured data storage, allowing the storage and querying of flexible JSON documents within traditional relational database systems.
Peewee is a lightweight Python ORM and query builder that offers database connections, schema management, and query construction, making it a strong fit for structured data access even though dedicated migration tools often rely on separate extensions.
Bun is a type-safe object relational mapper for Go that prioritizes SQL-first query construction and result mapping. It functions as a programmable SQL query builder, a database connection manager, and a tool for mapping database tables to Go structs. The project distinguishes itself through a multi-dialect SQL support system, allowing a single codebase to interact with different database engines via a consistent interface. It includes a built-in database observability tool for query interception, distributed tracing, and logging, as well as a schema migration tool for versioning structural c
Bun is a type-safe Go ORM and SQL query builder that supports multiple database dialects, connection management, and schema migrations, closely matching your data access requirements.
This project is a Java-based object-relational mapping framework that utilizes the active record pattern to simplify database interactions. It provides a comprehensive data access layer that binds database tables directly to application objects, enabling developers to perform CRUD operations, manage complex entity relationships, and execute queries through a fluent, type-safe interface. Designed for integration with Spring Boot, the framework abstracts database complexities while maintaining support for native compilation and asynchronous execution. The framework distinguishes itself through
This Java-based ORM framework offers object-relational mapping, query building, and Spring Boot integration, fitting the requested data access layer category well though lacking explicit mention of built-in migrations.
Yii is a full-stack PHP web framework and component-based system designed for building dynamic websites and RESTful services. It operates as an MVC application framework that separates business logic from the user interface and includes a built-in object-relational mapper for interacting with databases. The project provides a comprehensive command line toolset for project bootstrapping, automated code generation, and the execution of background tasks. It utilizes a component-based architecture and a service locator to manage dependency injection and object lifecycles. The framework covers a
Yii is a full-stack PHP web framework that includes a built-in object-relational mapper and database tools, providing the structured data access interface you are looking for even though it is broader than a standalone ORM library.
ActiveAndroid is a persistence framework for managing local SQLite databases on Android. It provides an active record object-relational mapping system that binds database tables to classes, allowing for data persistence and retrieval without writing manual SQL. The project distinguishes itself through a dedicated schema migration tool that updates database structures using versioned scripts loaded from application assets. It also includes a framework for sharing database content between different Android applications via a standard URI-based content provider interface. The library covers bro
ActiveAndroid provides object-relational mapping and schema migration tools for local SQLite persistence on Android, though its mobile-specific focus is narrower than a general-purpose database framework.
This project is a MongoDB Eloquent ORM and NoSQL query builder for the Laravel framework. It provides an active record implementation that maps MongoDB collections and documents to programmable models for data manipulation. The system enables schemaless data management, allowing applications to handle dynamic data structures without the need for rigid database migrations or predefined tables. It integrates MongoDB into Laravel applications to store and retrieve flexible document data using standard PHP patterns. The library covers document store querying and Eloquent model mapping, utilizing
This repository provides an object-relational mapping and query builder tailored specifically for MongoDB within the Laravel ecosystem, making it a fitting data access layer for document stores even though it lacks traditional SQL-focused migrations.
This project is a MongoDB database driver and object-relational mapper that brings MongoDB support to the Laravel Eloquent model and query builder. It provides a NoSQL model mapper that allows MongoDB collections to be mapped to object-oriented models using the Active Record pattern. The integration enables the use of a fluent query builder for constructing queries and aggregation pipelines without writing raw database syntax. It supports schema-less model integration, allowing applications to manage unstructured data while maintaining compatibility with standard object-oriented patterns. Th
This repository provides a MongoDB object-relational mapper and query builder integrated with the Laravel Eloquent model, offering active record mapping for NoSQL data stores.
Simplifies the development of creating a JPA-based data access layer.
This Java framework simplifies JPA-based data access layers and supports object-relational mapping, though it focuses specifically on the JPA ecosystem rather than offering a general-purpose multi-paradigm ORM.
Gorp is a lightweight object-relational mapper for Go that binds structs to relational database tables. It functions as a relational data mapper and SQL dialect abstraction layer, automating the translation between application data and relational rows. The project provides a translation layer that generates vendor-specific SQL for PostgreSQL, MySQL, SQLite, Oracle, and SQL Server. It distinguishes itself by implementing optimistic locking via version columns to prevent concurrent update conflicts and providing a database schema generator to create tables and indexes from object definitions.
Gorp is an object-relational mapping library for Go that binds structs to database tables and translates queries, though it lacks some advanced built-in features like a full query builder or native migrations.
Django is a full-stack web framework designed for rapid backend development. It provides an integrated environment for building data-driven applications by combining an object-relational mapping layer for database management with a modular request-response pipeline for handling HTTP traffic. The framework emphasizes security and maintainability, offering a suite of tools to protect against common web vulnerabilities while decoupling site structure from implementation through a centralized URL routing system. A defining characteristic of the framework is its ability to generate production-read
Django is a full-stack web framework that includes a robust object-relational mapping layer and database migration tools, though it goes beyond a standalone data access library to provide an entire web application environment.
jOOQ is a type-safe SQL query builder for Java that generates code from live database schemas, enabling compile-time validation of SQL syntax and data types. Its core identity is built around a fluent DSL that mirrors SQL structure, a code generator that maps tables, views, and routines to Java objects, and a multi-dialect engine that translates the same DSL into vendor-specific SQL for over 30 databases. The project also includes a SQL parser and transformer for refactoring or dialect conversion, reactive stream integration for non-blocking query execution, and a JDBC proxy diagnostics tool f
jOOQ provides a type-safe SQL query builder and code generator for Java that acts as a powerful data access layer, though it focuses more on type-safe SQL construction than traditional object-relational mapping.
LoopBack Next is a Node.js API framework used for building REST and multi-protocol APIs. It functions as an OpenAPI server implementation that can either generate machine-readable specifications from code or produce implementation controllers and models from existing specifications. The framework distinguishes itself through a central dependency injection container and a repository-pattern data access layer. This architecture decouples application logic from component construction and persistent storage, allowing for a pluggable system where data sources and business logic are isolated throug
LoopBack Next is a Node.js API framework that includes a repository-pattern data access layer, making it relevant for structured database interaction even though its primary focus is building APIs and services.
| Dépôt | Stars | Langage | Licence | Dernier push |
|---|---|---|---|---|
| go-gorm/gorm | 39.8K | Go | MIT | |
| mikro-orm/mikro-orm | 9.1K | TypeScript | MIT | |
| tgriesser/knex | 20.3K | JavaScript | MIT | |
| typeorm/typeorm | 36.5K | TypeScript | MIT | |
| tencent/wcdb | 11.5K | C | NOASSERTION | |
| aplus-framework/database | 339 | PHP | MIT | |
| sequelize/sequelize | 30.3K | TypeScript | MIT | |
| knex/knex | 20.3K | JavaScript | MIT | |
| hibernate/hibernate-orm | 6.4K | Java | Apache-2.0 | |
| ebean-orm/ebean | 1.5K | Java | Apache-2.0 |