GitHunt
KY

kysely-org/kysely-postgres-js

Kysely dialect for PostgreSQL that supports the Postgres.js client and Bun's SQL native binding.

A Kysely-branded yellow duck canoeing with a Postgres.js-branded grey elephant in the river

NPM Version
Tests
License
Issues
Pull Requests
GitHub contributors
Downloads

Join the discussion ⠀⠀⠀⠀⠀⠀⠀

Discord
Bluesky

kysely-postgres-js offers a Kysely dialect for PostgreSQL that supports the Postgres.js client library (version >= 3.4) and Bun's (version >= 1.2) SQL native binding.

This dialect should not be confused with Kysely's core PostgreSQL dialect, which supports the significantly more adopted pg client library and Neon's WebSockets Pool instead. Both of these dialects are maintained by members of the Kysely core team and are production ready.

Installation

Node.js

npm install kysely-postgres-js postgres kysely
pnpm add kysely-postgres-js postgres kysely
yarn add kysely-postgres-js postgres kysely

Other runtimes

deno add npm:kysely-postgres-js npm:postgres npm:kysely
bun add kysely-postgres-js kysely

Usage

Node.js

import { type GeneratedAlways, Kysely } from 'kysely'
import { PostgresJSDialect } from 'kysely-postgres-js'
import postgres from 'postgres'

interface Database {
  person: {
    id: GeneratedAlways<number>
    first_name: string | null
    last_name: string | null
    age: number
  }
}

const db = new Kysely<Database>({
  dialect: new PostgresJSDialect({
    postgres: postgres({
      database: 'test',
      host: 'localhost',
      max: 10,
      port: 5434,
      user: 'admin',
    }),
  }),
})

const people = await db.selectFrom("person").selectAll().execute();

Bun

import { SQL } from 'bun'
import { type GeneratedAlways, Kysely } from 'kysely'
import { PostgresJSDialect } from 'kysely-postgres-js'

interface Database {
  person: {
    id: GeneratedAlways<number>
    first_name: string | null
    last_name: string | null
    age: number
  }
}

const db = new Kysely<Database>({
  dialect: new PostgresJSDialect({
    postgres: new SQL({
      database: 'test',
      host: 'localhost',
      max: 10,
      port: 5434,
      user: 'admin',
    }),
  }),
})

const people = await db.selectFrom("person").selectAll().execute();

Languages

TypeScript100.0%

Contributors

MIT License
Created April 9, 2023
Updated March 20, 2026
kysely-org/kysely-postgres-js | GitHunt