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
@ydbjs/core: Core connection and utilities@ydbjs/query: YQL queries, transactions, parameters@ydbjs/value: YDB types and values@ydbjs/api: gRPC/Protobuf service definitions@ydbjs/error: YDB error handling@ydbjs/auth: Authentication (tokens, anonymous, metadata)@ydbjs/retry: Flexible retry policies
npm install @ydbjs/core @ydbjs/queryimport { 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 } ] ]Project docs:
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)
}
}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.
- Add a new service? Use
@ydbjs/apifor gRPC definitions. - Work with YDB types? Use
@ydbjs/value. - Implement retries? Use
@ydbjs/retry. - More examples? See package docs, local examples, or explore ydb-js-examples repository with comprehensive real-world examples.
- Build:
npm run build - Test (all):
npm test - Lint:
npm run lint