Hiroki helps you build REST APIs faster than ever using open source tools and standards that you and your team already know.
For detailed information, please read our full documentation.
Hiroki is a monorepo. The core package is all you need to get started — the sub-packages are optional adapters and logger integrations.
| Package | Version | Description |
|---|---|---|
hiroki |
Core — CRUD engine, MongooseAdapter, MemoryAdapter | |
hiroki-drizzle |
0.1.0-beta.0 |
Drizzle ORM adapter (PostgreSQL / SQLite) — beta |
hiroki-sequelize |
0.1.0-beta.0 |
Sequelize adapter (MySQL / PostgreSQL legacy) — beta |
hiroki-pino |
0.1.0 |
Pino logger integration |
hiroki-winston |
0.1.0 |
Winston logger integration |
npm install hirokiOptional packages:
# Drizzle adapter (requires drizzle-orm peer dep)
npm install hiroki-drizzle drizzle-orm
# Sequelize adapter (requires sequelize peer dep)
npm install hiroki-sequelize sequelize
# Logger integrations
npm install hiroki-pino pino
npm install hiroki-winston winstonimport express from 'express';
import mongoose from 'mongoose';
import hiroki from 'hiroki';
const UserSchema = new mongoose.Schema({ name: String, email: String });
const User = mongoose.model('User', UserSchema);
hiroki.importModel(User);
const app = express();
app.use(express.json());
app.use('/api/*', async (req, res) => {
const result = await hiroki.process(req.originalUrl, {
method: req.method as any,
body: req.body,
});
res.status(result.status ?? 200).json(result);
});
mongoose.connect('mongodb://localhost:27017/mydb').then(() => {
app.listen(3000, () => console.log('http://localhost:3000'));
});import hiroki, { MemoryAdapter } from 'hiroki';
hiroki.importModel('Products', {
adapter: new MemoryAdapter('Products'),
});import hiroki from 'hiroki';
import { PinoLogger } from 'hiroki-pino';
import pino from 'pino';
hiroki.setConfig({
logger: new PinoLogger(pino()),
});hiroki.setConfig({
basePath: '/api/v2', // default: '/api'
});- Adapter system — pluggable adapters,
MongooseAdapter,MemoryAdapter - Query AST — database-agnostic
HirokiQuerywith filtering, sorting, pagination - Hooks & middleware —
beforeCreate,afterCreate,beforeUpdate,afterUpdate,beforeDelete,afterDelete - Security — field whitelisting, query sanitization, depth limits
- TypeScript — full type safety across all public APIs
- Monorepo —
hiroki-drizzle,hiroki-sequelize,hiroki-pino,hiroki-winston
- Hiroki is now backend-agnostic. Express has been removed as a dependency.
- Mongoose version updated.
- The 'share' feature has been removed.