Silgi
Integrations

H3

Use Silgi with H3 v2, Nitro, and Nuxt server routes.

H3 is a minimal HTTP framework used by Nitro and Nuxt. Silgi's H3 adapter lets you mount RPC procedures alongside your existing routes.

Setup

import {  } from 'h3'
import {  } from 'silgi/h3'

const  = new ()

// Existing routes
.('/api/health', () => ({ : 'ok' }))

// Silgi RPC under /rpc prefix
.(
  '/rpc/**',
  (appRouter, {
    : () => ({
      : getDB(),
      : .context.user,
    }),
  }),
)

Each procedure becomes available at its path under the prefix:

POST /rpc/users/list
POST /rpc/users/create

Context from H3

The context function receives the H3 event. Use it to bridge H3's auth, session, or any middleware data into Silgi's context:

silgiH3(appRouter, {
  : () => ({
    : .context.user, // from H3 middleware
    : .req.headers.get('x-forwarded-for'),
  }),
})

Nitro / Nuxt server routes

In a Nitro or Nuxt project, create a catch-all server route:

// server/routes/rpc/[...].ts
import {  } from 'silgi/h3'
import {  } from '~/server/rpc'

export default (, {
  : '/rpc',
  : () => ({ : getDB() }),
})

This adapter supports H3 v2 (used in Nitro v3 and Nuxt 4). For H3 v1, the API is similar but uses defineEventHandler instead of defineHandler.

What's next?

  • Server — standalone serve() as an alternative
  • Integrations — other available integrations

On this page