flyerhzm/bullet

help to kill N+1 queries and unused eager loading

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 38 minutes ago
Added to GitGenius on September 9th, 2026
Created on August 13th, 2009
Open Issues & Pull Requests: 7 (+0)
GitHub issues: Enabled
Number of forks: 456
Total Stargazers: 7,338 (+0)
Total Subscribers: 67 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 9.6 days
Mean response time: 154.0 days
90th percentile: 627.3 days
Tracked items: 87

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Only 8% 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: 1
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 46 days
Stale 30+ days: 0
Stale 90+ days: 0

Recent activity

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

Top labels

  • stale (104)

Detailed Description

Bullet is a Ruby gem that detects N+1 queries and unused eager loading in Rails and Mongoid applications.

The gem works by monitoring database queries during development and identifying performance problems in three categories: missing eager loading that causes N+1 queries, unnecessary eager loading that fetches unused associations, and opportunities to use counter caches. It intercepts queries as they execute and analyzes access patterns to determine whether associations are being loaded inefficiently. The tool is designed to run in development mode or custom environments like staging, alerting developers to optimization opportunities before code reaches production.

Developers should use Bullet during active development to catch query inefficiencies early. It suits any Rails or Mongoid application where query performance matters, particularly those with complex associations. The gem supports activerecord and mongoid at modern versions and requires explicit configuration to enable notification systems, giving teams control over how and when alerts appear.

The project maintains active test coverage with a continuous integration workflow. Development activity shows consistent engagement with the codebase through regular updates and maintenance of compatibility with current Rails and Mongoid versions.