{"id":28200555,"url":"https://github.com/ydb-platform/ydb-js-sdk","last_synced_at":"2026-04-23T08:03:03.450Z","repository":{"id":37745563,"uuid":"250519390","full_name":"ydb-platform/ydb-js-sdk","owner":"ydb-platform","description":"YDB JavaScript/TypeScript SDK","archived":false,"fork":false,"pushed_at":"2026-02-27T18:12:09.000Z","size":3974,"stargazers_count":82,"open_issues_count":93,"forks_count":47,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-02-27T19:46:14.797Z","etag":null,"topics":["bun","database","deno","nodejs","typescript","ydb"],"latest_commit_sha":null,"homepage":"https://ydb.js.org","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ydb-platform.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2020-03-27T11:41:34.000Z","updated_at":"2026-02-27T18:11:00.000Z","dependencies_parsed_at":"2023-12-13T14:33:16.137Z","dependency_job_id":"d637add7-79ff-4fe3-b260-b689b9fb1dbf","html_url":"https://github.com/ydb-platform/ydb-js-sdk","commit_stats":{"total_commits":552,"total_committers":31,"mean_commits":"17.806451612903224","dds":0.6938405797101449,"last_synced_commit":"29601242ce9e75a97fe09c9f8c6aed6ae8d7bdd5"},"previous_names":["ydb-platform/ydb-js-sdk","ydb-platform/ydb-nodejs-sdk"],"tags_count":261,"template":false,"template_full_name":null,"purl":"pkg:github/ydb-platform/ydb-js-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ydb-platform%2Fydb-js-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ydb-platform%2Fydb-js-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ydb-platform%2Fydb-js-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ydb-platform%2Fydb-js-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ydb-platform","download_url":"https://codeload.github.com/ydb-platform/ydb-js-sdk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ydb-platform%2Fydb-js-sdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29995910,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T01:47:34.672Z","status":"online","status_checked_at":"2026-03-02T02:00:07.342Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bun","database","deno","nodejs","typescript","ydb"],"created_at":"2025-05-16T21:00:33.113Z","updated_at":"2026-03-15T11:54:41.785Z","avatar_url":"https://github.com/ydb-platform.png","language":"TypeScript","funding_links":[],"categories":["Backend \u0026 Infrastructure"],"sub_categories":["Databases \u0026 ORM"],"readme":"# YDB JavaScript SDK\n\n[![Docs](https://ydb.js.org/)](https://ydb.js.org/)\n\nModern, modular SDK for YDB in TypeScript/JavaScript.\n\n- Type‑safe YQL queries with tagged templates\n- Automatic parameter binding and transactions\n- Rich value/type system with `@ydbjs/value`\n- Clear errors, retries, and diagnostics\n\n## Other versions\n\n- [v5](https://github.com/ydb-platform/ydb-js-sdk/tree/v5)\n- [v4](https://github.com/ydb-platform/ydb-js-sdk/tree/v4.7.0)\n\n---\n\n## Packages\n\n- [`@ydbjs/core`](./packages/core): Core connection and utilities\n- [`@ydbjs/query`](./packages/query): YQL queries, transactions, parameters\n- [`@ydbjs/coordination`](./packages/coordination): Coordination nodes and distributed semaphores\n- [`@ydbjs/value`](./packages/value): YDB types and values\n- [`@ydbjs/api`](./packages/api): gRPC/Protobuf service definitions\n- [`@ydbjs/error`](./packages/error): YDB error handling\n- [`@ydbjs/auth`](./packages/auth): Authentication (tokens, anonymous, metadata)\n- [`@ydbjs/retry`](./packages/retry): Flexible retry policies\n\n---\n\n## Quick Start\n\n### 1) Install\n\n```sh\nnpm install @ydbjs/core @ydbjs/query\n```\n\n### 2) Connect and Query\n\n```ts\nimport { Driver } from '@ydbjs/core'\nimport { query } from '@ydbjs/query'\n\nconst driver = new Driver('grpc://localhost:2136/local')\nawait driver.ready()\n\nconst sql = query(driver)\nconst resultSets = await sql`SELECT 1 + 1 AS sum`\nconsole.log(resultSets) // [ [ { sum: 2 } ] ]\n```\n\n---\n\n## Documentation\n\n- [@ydbjs/core](./packages/core/README.md)\n- [@ydbjs/query](./packages/query/README.md)\n- [@ydbjs/coordination](./packages/coordination/README.md)\n- [@ydbjs/value](./packages/value/README.md)\n- [@ydbjs/api](./packages/api/README.md)\n- [@ydbjs/error](./packages/error/README.md)\n- [@ydbjs/auth](./packages/auth/README.md)\n- [@ydbjs/retry](./packages/retry/README.md)\n\nProject docs:\n\n- [Releasing](./RELEASING.md)\n- [Versioning](./VERSIONING.md)\n- [Contributing](./CONTRIBUTING.md)\n\n---\n\n## Examples\n\nExamples\n\n- Parameterized query:\n\n```ts\nimport { Int64, Optional, PrimitiveType } from '@ydbjs/value'\nconst sql = query(driver)\nawait sql`SELECT ${new Optional(new Int64(100n), new PrimitiveType('INT64'))};`\n```\n\n– Transactions:\n\n```ts\nawait sql.begin(async (tx, signal) =\u003e {\n  await tx`INSERT INTO users (id, name) VALUES (1, 'Alice')`\n  await tx`UPDATE users SET name = 'Bob' WHERE id = 1`\n})\n```\n\n– Error handling:\n\n```ts\nimport { YdbError } from '@ydbjs/error'\ntry {\n  await sql`SELECT * FROM non_existent_table`\n} catch (e) {\n  if (e instanceof YdbError) {\n    console.error('YDB Error:', e.message)\n  }\n}\n```\n\n---\n\n## AI Assistant Configuration\n\nFor projects using YDB SDK, you can configure AI assistants (GitHub Copilot, Cursor, etc.) to generate secure YQL code.\n\nMultiple example configuration files are provided in `packages/query/ai-instructions/`:\n\n- `.cursorrules.example` - Cursor AI instructions\n- `.instructions.example.md` - General AI assistant guidelines\n- `.copilot-instructions.example.md` - GitHub Copilot specific\n- `.ai-instructions.example.md` - Alternative general format\n\nCopy the appropriate file to your project root to enable secure AI code generation that follows YDB security best practices.\n\n---\n\n## FAQ\n\n- **Add a new service?** Use `@ydbjs/api` for gRPC definitions.\n- **Work with YDB types?** Use `@ydbjs/value`.\n- **Implement retries?** Use `@ydbjs/retry`.\n- **More examples?** See package docs, [local examples](https://github.com/ydb-platform/ydb-js-sdk/tree/main/examples), or explore [ydb-js-examples](https://github.com/ydb-platform/ydb-js-examples) repository with comprehensive real-world examples.\n\n---\n\n## Developer Guide\n\n- Build: `npm run build`\n- Test (all): `npm test`\n- Lint: `npm run lint`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fydb-platform%2Fydb-js-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fydb-platform%2Fydb-js-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fydb-platform%2Fydb-js-sdk/lists"}