OSS探訪GitHubでログイン

tagged templateでparameterized SQLを安全に組み立てる軽量PostgreSQL client

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
8,728
主要言語
JavaScript
ライセンス
Unlicense
リポジトリ最終更新
2026/09/02
ページ内ナビ

概要

Postgres.jsはNode.js、Deno、Bun、Cloudflare向けのPostgreSQL clientです。ES6 tagged templateを中心にSQLを記述し、interpolation valueをPostgreSQL parameterへ分離してqueryを組み立てます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

tagged templateでvalueをparameterへ自動分離する

sql\... ${value} ...\`のvalueは$1`等のplaceholderへ変換され、値はquery textと分離してPostgreSQLへ送られます。dynamic identifierやinsert/update helperも用意されています。

出典:[1]

transaction・cursor・LISTEN/NOTIFY・dynamic queryを一つのAPIで扱う

transaction、cursor/streaming、dynamic query fragment、LISTEN/NOTIFY、custom type等を提供し、薄いclient APIのままPostgreSQL機能へアクセスできます。

出典:[1]

向いている用途

Next.js・Node.jsでSQLを明示的に書きながら小さなdriver layerを使いたい場合に向く

ORMのmodel abstractionを挟まず、SQLを直接管理しつつparameterizationやconnection managementをlibraryへ任せたいbackendに適します。

出典:[1][3]

導入前の確認

dynamic identifierとuser inputの境界を区別する

通常のvalue interpolationはparameterizedされますが、table/column名等のidentifierはsql(identifier)等の専用APIで扱います。user入力をidentifierとして無制限に渡さずallowlistで制御してください。

出典:[1]

serverless/edgeではconnection設定とtransaction lifecycleを確認する

packageはNode.js、Deno、Bun、workerd向けexportを提供しますが、実際のPostgreSQL connection上限やproxy/pooler compatibilityはdeployment providerに依存します。v3.4.9はNode 12以上をpackage engineに指定しています。

出典:[3]

参考にした公式資料

  1. [1]Postgres.js v3.4.9 README(2026-10-06)
  2. [2]Postgres.js v3.4.9 release(2026-10-06)
  3. [3]Postgres.js v3.4.9 package metadata(2026-10-06)
編集部からの補足

SQLを明示的に書きながら小さなdriver layerを使いたいbackendに向きます。valueとidentifierの扱いを区別し、serverlessではconnection lifecycleを確認してください。

3ステップで試す

  1. 1

    ソースを取得

    git clone --depth 1 https://github.com/porsager/postgres.git
  2. 2

    リポジトリへ移動

    cd postgres
  3. 3

    公式手順を確認

    READMEのInstallation / Quick Start / Getting Startedにある公式コマンドを続けて実行してください。

    find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
公式READMEで確認

成長

成長の推移 · 直近30日

8,728 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
0
Open PR
72

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • postgresql
  • postgres
  • database
  • nodejs
  • driver
  • client
  • deno
  • cockroachdb
Stars
8,728
Forks
382
Watchers
48
Open Issues
252
Contributors
77
所有者種別
User
主要言語
JavaScript
ライセンス
Unlicense
リポジトリ最終更新
2026/09/02

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?