kaminari/kaminari

⚡ A Scope & Engine based, clean, powerful, customizable and sophisticated paginator for Ruby webapps

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 37 minutes ago
Added to GitGenius on September 7th, 2026
Created on February 6th, 2011
Open Issues & Pull Requests: 75 (+0)
GitHub issues: Enabled
Number of forks: 1,073
Total Stargazers: 8,670 (+0)
Total Subscribers: 118 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 2.0 days
Mean response time: 48.4 days
90th percentile: 68.1 days
Tracked items: 12

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 12
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,650 days
Stale 30+ days: 10
Stale 90+ days: 10

Recent activity

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

Top labels

  • ActiveRecord (2)
  • Bug (1)
  • Feature Request (1)
  • Feedback Needed (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Kaminari is a pagination library for Ruby web applications that provides scope and engine-based pagination across multiple ORMs and frameworks.

The tool solves the problem of paginating large datasets by offering a clean, chainable API built on database scopes rather than custom collection classes. It works by adding `page` and `per` scope methods to models, allowing developers to paginate results with simple method chains like `User.page(2).per(50)`. The pagination helper renders HTML5 navigation elements through customizable partial templates, making it easy to modify styling and behavior without touching core logic.

Developers should choose Kaminari if they need pagination that integrates seamlessly with existing query chains and doesn't pollute core Ruby classes. It suits Rails applications most naturally, but also works with Sinatra, Grape, and non-Rails frameworks. The tool supports multiple ORMs including ActiveRecord, Mongoid, DataMapper, and MongoMapper, and multiple template engines including ERB, Haml, and Slim. Unlike some pagination solutions that require special collection classes, Kaminari returns standard ActiveRecord relations, preserving the ability to chain additional conditions before or after pagination.

The project maintains active support across a wide range of Ruby and Rails versions. Development activity shows consistent engagement with the codebase through regular updates and testing infrastructure. The tool has been refined to handle edge cases like padding records to page boundaries and provides utilities for unscoping pagination when needed. The project's scope-based design reflects a commitment to modern Rails patterns and method chaining conventions.