paginate-core
Pure, language-agnostic engine behind the pypaginate (Python) and
@cyblow/paginate (TypeScript) packages. It owns the computational heart
of the library — cursor encoding, offset math, text normalization,
filtering, sorting and search — with zero binding dependencies so the
exact same crate links natively into Python (via PyO3) and Node/TypeScript
(via napi-rs), and compiles unchanged to WebAssembly for an optional
browser/edge target.
Design rules
- Plain data only. Everything crosses the boundary as [
value::Value], a small JSON-like enum. No host objects, no framework types. - Deterministic & side-effect free. Same input, same output — which is what lets the shared property-based invariants double as every binding's conformance suite.
- Behaviour parity. Each binding wraps this one engine, so results match across languages (e.g. the cursor wire format is byte-identical, so cursors minted by any implementation decode in the others).