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
·
ddnexus avatar

ddnexus/pagy

0
View on GitHub↗
4,973 stars·446 forks·Ruby·MIT·10 viewsddnexus.github.io/pagy↗

Pagy

Pagy is a framework-agnostic Ruby pagination library used to split large datasets into numbered pages. It provides multiple implementations for dividing data, including offset-based slicing for standard collections and high-performance keyset pagination for massive datasets.

The library includes a pagination UI generator for rendering accessible HTML navigation bars and a dedicated tool for REST API pagination that produces RFC-compliant link headers and JSON metadata. It also features specialized systems for dividing results from search engines like Elasticsearch, Meilisearch, and Typesense, as well as time-based pagination for organizing records into calendar units.

Broad capabilities cover data management for arrays and database collections, including record count memoization and page size rebalancing. The project also provides comprehensive UI and accessibility tools, such as ARIA labeling, right-to-left layout support, and integration with various CSS frameworks. Security is addressed through pagination parameter sanitization and error handling for out-of-range requests.

The system is extensible via a central configuration for global defaults and allows for core logic overriding through module prepending.

Features

  • Ruby Pagination Libraries - A framework-agnostic library for splitting large datasets into numbered pages within the Ruby ecosystem.
  • Collection Pagination - Splits data collections into smaller pages using offset or keyset techniques to improve load times.
  • Keyset Pagination - Implements high-performance retrieval using record values as markers instead of numeric offsets.
  • Offset Pagination - Divides collections into discrete pages by calculating the starting record index and a fixed limit.
  • Pagination Metadata - Formats pagination details as hashes or nested query strings for use by external APIs and clients.
  • Database Pagination Engines - Slices large database result sets into physical pages to reduce memory overhead and improve performance.
  • API Pagination - Generates RFC-compliant link headers, JSON metadata, and pagination markers for REST API clients.
  • In-Memory Array Pagination - Splits standard Ruby arrays of objects into numbered pages.
  • API Pagination - Provides comprehensive tools for implementing API pagination including markers and metadata headers.
  • Pagination UI Components - Renders accessible HTML navigation bars with ARIA labels and right-to-left support.
  • Pagination URL Generation - Produces navigation links for first, previous, next, and last pages including custom paths.
  • Pagination Link Generation - Renders previous and next page links using anchor tags with accessibility attributes.
  • Count Caching - Caches the total record count to eliminate redundant database queries across multiple page requests.
  • Count-Skipping Optimizations - Implements performance optimizations by omitting total record count queries during offset pagination.
  • Calendar Pagination - Organizes data into time-based buckets such as years, quarters, or months combined with offset pagination.
  • Temporal Range Pagination - Filters records by a specific time period and applies offset pagination within that window.
  • Search Engine Pagination - Divides result sets from search platforms like Elasticsearch, Meilisearch, and Typesense into discrete pages.
  • Independent Pagination Groups - Manages multiple independent pagination groups on a single page, each with its own unique page keys.
  • Request Parameter Sanitization - Filters and validates incoming URL keys to ensure page and limit values are safe and within range.
  • Configuration Defaults - Manages global and instance-level pagination settings through a centralized configuration object.
  • Framework Agnostic Interfaces - Calculates page slices and navigation links independently of any specific web framework or database driver.
  • Accessibility Labeling - Sets custom ARIA labels and roles on navigation elements for screen reader accessibility.
  • Framework Agnostic UI Logic - Provides pagination logic that operates independently of any specific rendering framework.
  • Page Number Link Generators - Outputs HTML strings of numbered navigation links for jumping between result pages.
  • Navigation Bars - Produces pagination bars with customizable link positions and layout options.
  • Pagination Range Displays - Generates human-readable strings displaying the current page range and total item count.
  • Pagination Header Generation - The library creates compliant link headers and customizable metadata headers to describe the current page and record count.
  • REST API Pagination Tooling - Produces RFC-compliant link headers and JSON:API metadata for web services.
  • Pagination Tools - High-performance pagination gem for various frameworks.

Star history

Star history chart for ddnexus/pagyStar history chart for ddnexus/pagy

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

Open-source alternatives to Pagy

Similar open-source projects, ranked by how many features they share with Pagy.
  • kaminari/kaminarikaminari avatar

    kaminari/kaminari

    8,681View on GitHub↗

    Kaminari is a Ruby pagination library and ActiveRecord tool designed to divide large datasets into smaller pages using limit and offset logic. It functions as a data paging utility that manages record offsets and total count calculations for Ruby web applications. The project distinguishes itself by generating SEO-friendly navigation links and standardized HTML tags to improve search engine indexing. It supports localized navigation labels and translation files for multilingual interface design, and allows for customizable pagination themes via template overrides of view partials. The librar

    Ruby
    View on GitHub↗8,681
  • mislav/will_paginatemislav avatar

    mislav/will_paginate

    5,691View on GitHub↗

    Pagination library for Rails and other Ruby applications

    Rubypaginationpagination-libraryplugin
    View on GitHub↗5,691
  • aplus-framework/paginationaplus-framework avatar

    aplus-framework/pagination

    212View on GitHub↗

    Pagination is a PHP data pagination library that splits large collections of database records or arrays into manageable pages. It operates as a standalone utility handling offset calculation, page numbering, and result splitting for raw arrays or database queries. The library computes data slices and navigation boundaries using explicit limit and offset values derived from incoming request parameters. It automatically extracts current page indicators and item counts from query strings to determine the active view state. Through state-driven navigation generation, it computes previous, next, a

    PHPaplusaplus-frameworkbootstrap
    View on GitHub↗212
  • effector/effectoreffector avatar

    effector/effector

    4,837View on GitHub↗

    Effector is a reactive state management library designed for building complex, event-driven applications. It functions as a data flow engine that models application logic as a directed acyclic graph, ensuring that state updates propagate automatically through interconnected nodes. By utilizing atomic state updates and declarative unit composition, the library maintains data consistency and provides a predictable execution model for managing application state. The project distinguishes itself through its framework-agnostic architecture, which decouples business logic from user interface implem

    TypeScriptbusiness-logiceffectorevent-driven
    View on GitHub↗4,837
See all 30 alternatives to Pagy→

Frequently asked questions

What does ddnexus/pagy do?

Pagy is a framework-agnostic Ruby pagination library used to split large datasets into numbered pages. It provides multiple implementations for dividing data, including offset-based slicing for standard collections and high-performance keyset pagination for massive datasets.

What are the main features of ddnexus/pagy?

The main features of ddnexus/pagy are: Ruby Pagination Libraries, Collection Pagination, Keyset Pagination, Offset Pagination, Pagination Metadata, Database Pagination Engines, API Pagination, In-Memory Array Pagination.

What are some open-source alternatives to ddnexus/pagy?

Open-source alternatives to ddnexus/pagy include: kaminari/kaminari — Kaminari is a Ruby pagination library and ActiveRecord tool designed to divide large datasets into smaller pages using… mislav/will_paginate — Pagination library for Rails and other Ruby applications. aplus-framework/pagination — Pagination is a PHP data pagination library that splits large collections of database records or arrays into… effector/effector — Effector is a reactive state management library designed for building complex, event-driven applications. It functions… alex-shpak/hugo-book — hugo-book is a documentation theme and static site framework for Hugo designed to create structured technical manuals,… codeigniter4/codeigniter4 — CodeIgniter is a PHP web framework built on the Model-View-Controller pattern, designed for building full-stack web…