Installation
All packages are published independently; install only what your side of the wire needs. @rapiq/core is a peer dependency of every other package, so it is always part of the mix.
Caller (client) side
To build typed queries and encode them as URL query strings:
sh
npm install @rapiq/core @rapiq/codec-urlThat's everything a frontend needs. If you only build queries and hand them to an in-process consumer (no URL), @rapiq/core alone is enough.
Receiver (server) side
To decode and validate incoming URL query input (a raw query string or a pre-parsed object like express' req.query):
sh
npm install @rapiq/core @rapiq/codec-urlThen add the backend that executes queries against your data:
sh
npm install @rapiq/adapter-sql @rapiq/adapter-typeormsh
npm install @rapiq/adapter-prismash
npm install @rapiq/adapter-drizzlesh
npm install @rapiq/adapter-sqlsh
npm install @rapiq/adapter-memoryOptional packages
| Package | Install when… |
|---|---|
| @rapiq/parser-simple | non-URL input already uses canonical parameter keys (filters, pagination, …) |
| @rapiq/parser-expression | non-URL input contains function-call filter expressions like and(eq(name, 'John'), gte(age, '18')) |
| @rapiq/parser-mongo | you want to accept MongoDB-style filter documents like { age: { $gte: 18 } } |
| @rapiq/adapter-memory | you want to evaluate a Query against in-memory objects, e.g. authorization guards or mock backends |
Not sure which combination you need? The package overview walks through the decision.
Requirements
- Node.js ≥ 22 for the server-side packages; the client-side packages run in any modern bundler/browser environment.
- TypeScript is optional but strongly recommended: typed field paths are a core feature.
Next steps
- Quick Start: wire everything together in one walkthrough.