elixir-ecto/ecto

A toolkit for data mapping and language integrated query.

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 55 minutes ago
Added to GitGenius on September 10th, 2026
Created on June 12th, 2013
Open Issues & Pull Requests: 12 (+0)
GitHub issues: Enabled
Number of forks: 1,484
Total Stargazers: 6,495 (+0)
Total Subscribers: 161 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 0.7 hours
Mean response time: 18.9 hours
90th percentile: 18.1 hours
Tracked items: 116

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Only 15% of issues opened in the past year have been closed. Three people close 83% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 3
New in 7 days: 1
Closed in 7 days: 1
Avg open age: 458 days
Stale 30+ days: 2
Stale 90+ days: 1

Recent activity

Opened in 7 days: 1
Closed in 7 days: 1
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • Kind:Bug (96)
  • Kind:Enhancement (4)
  • Note:Discussion (3)
  • Level:Advanced (2)
  • Level:Intermediate (2)
  • Level:Starter (1)
  • Note:Needs more info (1)

Detailed Description

Ecto is a toolkit for data mapping and language integrated query for Elixir.

Ecto solves the problem of mapping data from various sources into Elixir structs and querying that data using language-integrated syntax. It works by providing a declarative approach to defining schemas and composing queries, allowing developers to work with structured data whether backed by a database or not. The toolkit supports multiple database backends through pluggable adapters, including PostgreSQL, MySQL, MSSQL, SQLite3, and ClickHouse, as well as non-database sources like ETS.

Ecto suits projects built in Elixir that need to interact with relational databases or map external data into Elixir structures. Teams should choose it when they want a strongly-typed, composable approach to data access that integrates naturally with Elixir's pattern matching and functional paradigms. The project is particularly valuable for applications requiring complex queries and data transformations, as it provides language-integrated query capabilities rather than string-based SQL construction. Adoption requires adding both Ecto and a database-specific adapter as dependencies, with PostgreSQL, MySQL, and SQLite3 being the most commonly used options.

The project maintains multiple supported versions with a clear support policy, providing bug fixes for the latest branch and security patches for several prior versions. Integration testing is comprehensive, with a dedicated integration test suite that runs against actual database instances in containerized environments. The toolkit's API has stabilized, with the project now focused on delivering bug fixes and incremental improvements rather than major architectural changes.