awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
ent avatar

ent/ent

0
View on GitHub↗
17,110 stars·1,005 forks·Go·Apache-2.0·63 viewsentgo.io↗

Ent

Ent is a statically typed entity framework for Go that models database structures as a graph of nodes and edges. It functions as a code generation engine that transforms schema definitions into type-safe database clients, query builders, and migration scripts. By representing data as interconnected entities, the framework enables intuitive traversal of complex relationships and ensures that database interactions remain consistent with the application model at compile time.

The framework distinguishes itself through its graph-based approach to data modeling and its reliance on compile-time code generation to enforce type safety. It automates the synchronization of database schemas with application models, providing tools to manage versioned migrations and validate structural integrity before changes are applied. Developers can customize the generation pipeline using templates to tailor the output to specific infrastructure requirements.

Beyond core modeling and generation, the project provides a comprehensive suite of tools for managing the data lifecycle. This includes automated API development for GraphQL, cursor-based pagination for large datasets, and built-in mechanisms for auditing data changes. The system also optimizes data retrieval by automating the loading of related entities, reducing the need for manual query management.

Features

  • Database ORMs - Provides a statically typed entity framework for Go that manages relational schemas via graph-based modeling.
  • Database Schema Migrations - Automates the synchronization of database schemas with application models using versioned migration scripts.
  • Graph Data Models - Models database entities as nodes and edges to enable intuitive traversal of complex data structures.
  • Schema Migration Tools - Synchronizes database structures with application models using versioned SQL files and integrity validation.
  • Type-Safe Database Clients - Transforms schema definitions into type-safe database clients, CRUD builders, and migration scripts.
  • Compile-Time Code Generation - Generates type-safe database accessors and builders at compile time from schema definitions.
  • Data Schema Definitions - Uses statically typed objects to define database entities and relationships as the source of truth for code generation.
  • Graph Querying - Enables querying complex relationships by navigating connected entities and edges.
  • GraphQL API Generators - Automatically derives GraphQL schemas and resolvers directly from defined data models.
  • Fluent Query Builders - Provides a chainable, type-safe API for constructing complex database queries and navigating relationships.
  • Entity Relationship Models - Manages complex entity associations including one-to-many and many-to-many relationships with bidirectional navigation.
  • Schema Synchronization Tools - Automatically aligns database tables and columns with defined entity schemas.
  • Type-Safe Query Builders - Enforces compile-time type safety for database queries based on defined entity schemas.
  • Databases and Storage - Entity framework for Go.
  • Database Transactions - Wraps database mutations in atomic transactions to ensure data integrity across complex operations.
  • Eager Loading Engines - Optimizes data retrieval by automating the loading of related entities to reduce database round-trips.
  • Database Schema Constraints - Enforces indexes and unique constraints within entity definitions to ensure data integrity and performance.
  • Migration Generation - Generates schema update scripts from entity definitions for manual review or offline application.
  • Code Generation Pipelines - Provides automated pipelines for injecting custom logic and dependencies into the code generation process.
  • Entity Audit Logs - Records historical changes to entities in dedicated audit tables to maintain a complete event history.
  • Cursor-Based Pagination - Implements cursor-based pagination and global node identification for efficient navigation of large datasets.
  • Enumeration Types - Automatically maps custom database values to typed schema constants for consistent data handling.
  • JSON Processors - Maps JSON database columns into typed structures for atomic updates and complex filtering.
  • Cursor Pagination - Standardizes API responses using cursor-based pagination and global node identification for consistent data navigation.

Star history

Star history chart for ent/entStar history chart for ent/ent

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does ent/ent do?

Ent is a statically typed entity framework for Go that models database structures as a graph of nodes and edges. It functions as a code generation engine that transforms schema definitions into type-safe database clients, query builders, and migration scripts. By representing data as interconnected entities, the framework enables intuitive traversal of complex relationships and ensures that database interactions remain consistent with the application model at compile time.

What are the main features of ent/ent?

The main features of ent/ent are: Database ORMs, Database Schema Migrations, Graph Data Models, Schema Migration Tools, Type-Safe Database Clients, Compile-Time Code Generation, Data Schema Definitions, Graph Querying.

What are some open-source alternatives to ent/ent?

Open-source alternatives to ent/ent include: geldata/gel — Gel is an object-relational database system that models data as a graph of interconnected objects. By utilizing a… simolus3/drift — Drift is a type-safe SQL persistence library and relational mapper that provides a structured way to map database… prisma/prisma — Prisma is a database toolkit that provides a unified access layer for interacting with relational and document… golang-migrate/migrate — This project is a command-line utility designed to manage database schema versioning and automate incremental schema… jeremyevans/sequel — Sequel is a relational database toolkit for Ruby that provides object-relational mapping, a fluent SQL query builder,… seaql/sea-orm — Sea-ORM is an asynchronous SQL object-relational mapper and database toolkit for mapping relational tables to strongly…

Open-source alternatives to Ent

Similar open-source projects, ranked by how many features they share with Ent.
  • geldata/gelgeldata avatar

    geldata/gel

    14,065View on GitHub↗

    Gel is an object-relational database system that models data as a graph of interconnected objects. By utilizing a strongly typed schema, it enables complex relational queries and polymorphic data structures without the need for traditional join tables. The system integrates native vector storage and similarity search operators, allowing it to function as both a relational and a vector database for semantic data retrieval. The platform distinguishes itself through a comprehensive suite of developer-centric automation tools. It features a declarative migration system that tracks and versions sc

    Pythondatabaseedgedbedgeql
    View on GitHub↗14,065
  • simolus3/driftsimolus3 avatar

    simolus3/drift

    3,231View on GitHub↗

    Drift is a type-safe SQL persistence library and relational mapper that provides a structured way to map database tables to classes and execute SQL queries with build-time validation. It functions as a type-safe query builder and a wrapper for SQLite and PostgreSQL, eliminating manual result set parsing by binding query outputs to native objects. The project distinguishes itself through a build-time code generation system that produces type-safe APIs and validates raw SQL statements against database versions before execution. It features reactive query streaming, which transforms SQL queries

    Dartdartdart-build-systemflutter
    View on GitHub↗3,231
  • prisma/prismaprisma avatar

    prisma/prisma

    46,366View on GitHub↗

    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

    TypeScriptcockroachdbdatabasejavascript
    View on GitHub↗46,366
  • golang-migrate/migrategolang-migrate avatar

    golang-migrate/migrate

    18,118View on GitHub↗

    This project is a command-line utility designed to manage database schema versioning and automate incremental schema updates. It functions as a version control system for database structures, ensuring consistency across environments by tracking applied migrations in a dedicated metadata table and executing scripts in a sequential, reliable manner. The tool distinguishes itself through a driver-based abstraction layer that supports a wide range of database engines, including various SQL and distributed cloud databases. It provides robust concurrency control through advisory locking, which prev

    Goaws-s3cassandradatabase
    View on GitHub↗18,118
  • See all 30 alternatives to Ent→