Skip to main content
Apiser is a collection of packages that work together or independently. Install only the packages you need for your project.

Prerequisites

Apiser requires Node.js 18 or later. Bun 1.0+ is also supported.

Core packages

@apisr/drizzle-model

Type-safe, chainable model runtime for Drizzle ORM.
This package requires Drizzle ORM beta version (^1.0.0-beta.2-86f844e). Standard Drizzle v0.x is not supported. The package also requires Drizzle relations v2.
npm install @apisr/drizzle-model drizzle-orm@beta
Peer dependencies:
  • drizzle-orm@^1.0.0-beta.2-86f844e (required)
  • pg@^8.16.3 (for PostgreSQL)

@apisr/controller

Composable request handlers with validation, caching, and error handling.
npm install @apisr/controller
Peer dependencies:
  • keyv@^5.6.0 (for caching)
  • elysia@^1.4.25 (for Elysia integration)
Subpath exports:
  • @apisr/controller - Core controller functionality
  • @apisr/controller/elysia - Elysia.js integration
  • @apisr/controller/cache/keyv - Keyv cache adapter

@apisr/response

Standardized response utilities for consistent API responses.
npm install @apisr/response

@apisr/schema

Universal schema validation with Zod support.
npm install @apisr/schema

@apisr/zod

Enhanced Zod utilities for schema validation.
npm install @apisr/zod zod
Dependencies:
  • zod@^4.3.5

@apisr/logger

Colorful console logging with JSON formatting and stack traces.
npm install @apisr/logger
Subpath exports:
  • @apisr/logger - Core logger functionality
  • @apisr/logger/console - Console logger implementation

Full stack installation

For a complete backend setup with all core packages:
npm install @apisr/drizzle-model @apisr/controller @apisr/response @apisr/schema @apisr/zod @apisr/logger drizzle-orm@beta zod

TypeScript configuration

Apiser packages are designed for TypeScript and require proper configuration.
Enable strict mode in your tsconfig.json for the best type safety experience.
tsconfig.json
{
  "compilerOptions": {
    "target": "ES2022",
    "module": "ESNext",
    "moduleResolution": "bundler",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true
  }
}

Database setup (for @apisr/drizzle-model)

If you’re using @apisr/drizzle-model, you’ll also need to install a database driver:

PostgreSQL

npm install pg drizzle-orm@beta
npm install -D @types/pg drizzle-kit@beta

MySQL

npm install mysql2 drizzle-orm@beta
npm install -D drizzle-kit@beta

SQLite

npm install better-sqlite3 drizzle-orm@beta
npm install -D @types/better-sqlite3 drizzle-kit@beta

Verify installation

Create a test file to verify your installation:
test.ts
import { modelBuilder, esc } from "@apisr/drizzle-model";

console.log("Apiser packages installed successfully!");
Run the file:
npx tsx test.ts

Next steps

Quick start

Build your first application with Apiser

Drizzle Model

Learn about the Drizzle ORM model runtime

Build docs developers (and LLMs) love