Skip to content

ydb-platform/ydb-js-sdk

Repository files navigation

YDB JavaScript SDK

Modern, modular SDK for YDB in TypeScript/JavaScript.

  • Type‑safe YQL queries with tagged templates
  • Automatic parameter binding and transactions
  • Rich value/type system with @ydbjs/value
  • Clear errors, retries, and diagnostics

Other versions


Packages


Quick Start

1) Install

npm install @ydbjs/core @ydbjs/query

2) Connect and Query

import { Driver } from '@ydbjs/core'
import { query } from '@ydbjs/query'

const driver = new Driver('grpc://localhost:2136/local')
await driver.ready()

const sql = query(driver)
const resultSets = await sql`SELECT 1 + 1 AS sum`
console.log(resultSets) // [ [ { sum: 2 } ] ]

Documentation

Project docs:


Examples

Examples

  • Parameterized query:
import { Int64, Optional, PrimitiveType } from '@ydbjs/value'
const sql = query(driver)
await sql`SELECT ${new Optional(new Int64(100n), new PrimitiveType('INT64'))};`

– Transactions:

await sql.begin(async (tx, signal) => {
  await tx`INSERT INTO users (id, name) VALUES (1, 'Alice')`
  await tx`UPDATE users SET name = 'Bob' WHERE id = 1`
})

– Error handling:

import { YdbError } from '@ydbjs/error'
try {
  await sql`SELECT * FROM non_existent_table`
} catch (e) {
  if (e instanceof YdbError) {
    console.error('YDB Error:', e.message)
  }
}

AI Assistant Configuration

For projects using YDB SDK, you can configure AI assistants (GitHub Copilot, Cursor, etc.) to generate secure YQL code.

Multiple example configuration files are provided in packages/query/ai-instructions/:

  • .cursorrules.example - Cursor AI instructions
  • .instructions.example.md - General AI assistant guidelines
  • .copilot-instructions.example.md - GitHub Copilot specific
  • .ai-instructions.example.md - Alternative general format

Copy the appropriate file to your project root to enable secure AI code generation that follows YDB security best practices.


FAQ

  • Add a new service? Use @ydbjs/api for gRPC definitions.
  • Work with YDB types? Use @ydbjs/value.
  • Implement retries? Use @ydbjs/retry.
  • More examples? See package docs and GitHub Examples.

Developer Guide

  • Build: npm run build
  • Test (all): npm test
  • Lint: npm run lint