paginate
Fast pagination, filtering, sorting, and search with one Rust core and native Python & TypeScript packages that return byte-for-byte identical results.
:::tip Try it live The Playground runs the real Rust engine in your browser (compiled to WebAssembly) โ filter, sort, search, and the cursor codec, with no install. :::
Packagesโ
| Language | Package | Install | Reference |
|---|---|---|---|
| Python | pypaginate | pip install pypaginate | Python guide |
| TypeScript / Node | @cyblow/paginate | npm i @cyblow/paginate | TypeScript guide |
| Rust | paginate-core | cargo add paginate-core | Rust core ยท docs.rs |
Choose your pathโ
- ๐ Python โ
paginate(), one-shotfilter/sort/search, the residentDataset, and SQLAlchemy / Django / FastAPI integrations. - ๐ฆ JavaScript / TypeScript โ the same surface, plus Express / Prisma / Drizzle adapters and the portable cursor codec.
- ๐ฆ Rust core โ embed the engine directly, or read how it works.
Core ideasโ
These apply to every language โ read them once:
- Why paginate? โ what problem it solves and when to reach for it.
- Choosing a package โ which install fits your stack.
- Architecture โ the fat-core / thin-adapter design.
- Cross-language parity โ why results and cursors match exactly.
- Pagination models โ offset vs. keyset (cursor).
Shared referenceโ
The spec vocabulary is defined once in the core and is identical in every language:
- Filtering & operators โ the 20 operators and boolean groups.
- Sorting semantics โ stability, direction, and null placement.
- Search & ranking โ match modes, trigram fuzzy scoring, weights.
Recipes & helpโ
- ๐ณ Sharing cursors across Python & TypeScript โ the headline feature, end to end.
- ๐ณ Building a paginated API โ query params โ filtered, sorted page.
- โ ๏ธ Errors & limits โ the shared exception hierarchy and built-in limits.
- โ FAQ ยท ๐ Glossary โ common questions and the vocabulary.