{"id":13536838,"url":"https://github.com/tursodatabase/libsql-js","last_synced_at":"2026-02-05T13:17:33.665Z","repository":{"id":182004572,"uuid":"667804383","full_name":"tursodatabase/libsql-js","owner":"tursodatabase","description":"A better-sqlite3 compatible API for libSQL that supports Bun, Deno, and Node","archived":false,"fork":false,"pushed_at":"2025-05-14T14:29:07.000Z","size":670,"stargazers_count":270,"open_issues_count":46,"forks_count":33,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-05-14T15:42:21.481Z","etag":null,"topics":["bun","deno","javascript","libsql","nodejs","sqlite","typescript"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tursodatabase.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-07-18T10:39:21.000Z","updated_at":"2025-05-14T14:29:11.000Z","dependencies_parsed_at":"2023-10-20T17:38:11.514Z","dependency_job_id":"f7fd1a05-c659-4c60-972e-1bbd1728ccc8","html_url":"https://github.com/tursodatabase/libsql-js","commit_stats":{"total_commits":359,"total_committers":16,"mean_commits":22.4375,"dds":"0.18105849582172706","last_synced_commit":"1386568fabe51928b85b341559e736099636a7ff"},"previous_names":["penberg/libsql-js-experimental","penberg/penberg-node-rust","libsql/libsql-experimental-node","libsql/libsql-node","libsql/libsql-js","tursodatabase/libsql-js"],"tags_count":137,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tursodatabase%2Flibsql-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tursodatabase%2Flibsql-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tursodatabase%2Flibsql-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tursodatabase%2Flibsql-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tursodatabase","download_url":"https://codeload.github.com/tursodatabase/libsql-js/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254181982,"owners_count":22028237,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","deno","javascript","libsql","nodejs","sqlite","typescript"],"created_at":"2024-08-01T09:00:50.356Z","updated_at":"2026-02-05T13:17:28.620Z","avatar_url":"https://github.com/tursodatabase.png","language":"JavaScript","funding_links":[],"categories":["typescript","JavaScript","Tools"],"sub_categories":["Official"],"readme":"# libSQL API for JavaScript/TypeScript\n\n[![npm](https://badge.fury.io/js/libsql.svg)](https://badge.fury.io/js/libsql)\n[![Ask AI](https://img.shields.io/badge/Phorm-Ask_AI-%23F2777A.svg?\u0026logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNSIgaGVpZ2h0PSI0IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Ik00LjQzIDEuODgyYTEuNDQgMS40NCAwIDAgMS0uMDk4LjQyNmMtLjA1LjEyMy0uMTE1LjIzLS4xOTIuMzIyLS4wNzUuMDktLjE2LjE2NS0uMjU1LjIyNmExLjM1MyAxLjM1MyAwIDAgMS0uNTk1LjIxMmMtLjA5OS4wMTItLjE5Mi4wMTQtLjI3OS4wMDZsLTEuNTkzLS4xNHYtLjQwNmgxLjY1OGMuMDkuMDAxLjE3LS4xNjkuMjQ2LS4xOTFhLjYwMy42MDMgMCAwIDAgLjItLjEwNi41MjkuNTI5IDAgMCAwIC4xMzgtLjE3LjY1NC42NTQgMCAwIDAgLjA2NS0uMjRsLjAyOC0uMzJhLjkzLjkzIDAgMCAwLS4wMzYtLjI0OS41NjcuNTY3IDAgMCAwLS4xMDMtLjIuNTAyLjUwMiAwIDAgMC0uMTY4LS4xMzguNjA4LjYwOCAwIDAgMC0uMjQtLjA2N0wyLjQzNy43MjkgMS42MjUuNjcxYS4zMjIuMzIyIDAgMCAwLS4yMzIuMDU4LjM3NS4zNzUgMCAwIDAtLjExNi4yMzJsLS4xMTYgMS40NS0uMDU4LjY5Ny0uMDU4Ljc1NEwuNzA1IDRsLS4zNTctLjA3OUwuNjAyLjkwNkMuNjE3LjcyNi42NjMuNTc0LjczOS40NTRhLjk1OC45NTggMCAwIDEgLjI3NC0uMjg1Ljk3MS45NzEgMCAwIDEgLjMzNy0uMTRjLjExOS0uMDI2LjIyNy0uMDM0LjMyNS0uMDI2TDMuMjMyLjE2Yy4xNTkuMDE0LjMzNi4wMy40NTkuMDgyYTEuMTczIDEuMTczIDAgMCAxIC41NDUuNDQ3Yy4wNi4wOTQuMTA5LjE5Mi4xNDQuMjkzYTEuMzkyIDEuMzkyIDAgMCAxIC4wNzguNThsLS4wMjkuMzJaIiBmaWxsPSIjRjI3NzdBIi8+CiAgPHBhdGggZD0iTTQuMDgyIDIuMDA3YTEuNDU1IDEuNDU1IDAgMCAxLS4wOTguNDI3Yy0uMDUuMTI0LS4xMTQuMjMyLS4xOTIuMzI0YTEuMTMgMS4xMyAwIDAgMS0uMjU0LjIyNyAxLjM1MyAxLjM1MyAwIDAgMS0uNTk1LjIxNGMtLjEuMDEyLS4xOTMuMDE0LS4yOC4wMDZsLTEuNTYtLjEwOC4wMzQtLjQwNi4wMy0uMzQ4IDEuNTU5LjE1NGMuMDkgMCAuMTczLS4wMS4yNDgtLjAzM2EuNjAzLjYwMyAwIDAgMCAuMi0uMTA2LjUzMi41MzIgMCAwIDAgLjEzOS0uMTcyLjY2LjY2IDAgMCAwIC4wNjQtLjI0MWwuMDI5LS4zMjFhLjk0Ljk0IDAgMCAwLS4wMzYtLjI1LjU3LjU3IDAgMCAwLS4xMDMtLjIwMi41MDIuNTAyIDAgMCAwLS4xNjgtLjEzOC42MDUuNjA1IDAgMCAwLS4yNC0uMDY3TDEuMjczLjgyN2MtLjA5NC0uMDA4LS4xNjguMDEtLjIyMS4wNTUtLjA1My4wNDUtLjA4NC4xMTQtLjA5Mi4yMDZMLjcwNSA0IDAgMy45MzhsLjI1NS0yLjkxMUExLjAxIDEuMDEgMCAwIDEgLjM5My41NzIuOTYyLjk2MiAwIDAgMSAuNjY2LjI4NmEuOTcuOTcgMCAwIDEgLjMzOC0uMTRDMS4xMjIuMTIgMS4yMy4xMSAxLjMyOC4xMTlsMS41OTMuMTRjLjE2LjAxNC4zLjA0Ny40MjMuMWExLjE3IDEuMTcgMCAwIDEgLjU0NS40NDhjLjA2MS4wOTUuMTA5LjE5My4xNDQuMjk1YTEuNDA2IDEuNDA2IDAgMCAxIC4wNzcuNTgzbC0uMDI4LjMyMloiIGZpbGw9IndoaXRlIi8+CiAgPHBhdGggZD0iTTQuMDgyIDIuMDA3YTEuNDU1IDEuNDU1IDAgMCAxLS4wOTguNDI3Yy0uMDUuMTI0LS4xMTQuMjMyLS4xOTIuMzI0YTEuMTMgMS4xMyAwIDAgMS0uMjU0LjIyNyAxLjM1MyAxLjM1MyAwIDAgMS0uNTk1LjIxNGMtLjEuMDEyLS4xOTMuMDE0LS4yOC4wMDZsLTEuNTYtLjEwOC4wMzQtLjQwNi4wMy0uMzQ4IDEuNTU5LjE1NGMuMDkgMCAuMTczLS4wMS4yNDgtLjAzM2EuNjAzLjYwMyAwIDAgMCAuMi0uMTA2LjUzMi41MzIgMCAwIDAgLjEzOS0uMTcyLjY2LjY2IDAgMCAwIC4wNjQtLjI0MWwuMDI5LS4zMjFhLjk0Ljk0IDAgMCAwLS4wMzYtLjI1LjU3LjU3IDAgMCAwLS4xMDMtLjIwMi41MDIuNTAyIDAgMCAwLS4xNjgtLjEzOC42MDUuNjA1IDAgMCAwLS4yNC0uMDY3TDEuMjczLjgyN2MtLjA5NC0uMDA4LS4xNjguMDEtLjIyMS4wNTUtLjA1My4wNDUtLjA4NC4xMTQtLjA5Mi4yMDZMLjcwNSA0IDAgMy45MzhsLjI1NS0yLjkxMUExLjAxIDEuMDEgMCAwIDEgLjM5My41NzIuOTYyLjk2MiAwIDAgMSAuNjY2LjI4NmEuOTcuOTcgMCAwIDEgLjMzOC0uMTRDMS4xMjIuMTIgMS4yMy4xMSAxLjMyOC4xMTlsMS41OTMuMTRjLjE2LjAxNC4zLjA0Ny40MjMuMWExLjE3IDEuMTcgMCAwIDEgLjU0NS40NDhjLjA2MS4wOTUuMTA5LjE5My4xNDQuMjk1YTEuNDA2IDEuNDA2IDAgMCAxIC4wNzcuNTgzbC0uMDI4LjMyMloiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=)](https://www.phorm.ai/query?projectId=3c9a471f-4a47-469f-81f6-4ea1ff9ab418)\n\n[libSQL](https://github.com/libsql/libsql) is an open source, open contribution fork of SQLite.\nThis source repository contains libSQL API bindings for Node, which aims to be compatible with [better-sqlite3](https://github.com/WiseLibs/better-sqlite3/), but with opt-in promise API.\n\n*Please note that there is also the [libSQL SDK](https://github.com/libsql/libsql-client-ts), which is useful if you don't need `better-sqlite3` compatibility or use libSQL in environments like serverless functions that require `fetch()`-based database access protocol.*\n\n## Features\n\n* In-memory and local libSQL/SQLite databases\n* Remote libSQL databases\n* Embedded, in-app replica that syncs with a remote libSQL database\n* Supports Bun, Deno, and Node on macOS, Linux, and Windows.\n\n## Installing\n\nYou can install the package with:\n\n**Node:**\n\n```sh\nnpm i libsql\n```\n\n**Bun:**\n\n```sh\nbun add libsql\n```\n\n**Deno:**\n\nUse the `npm:` prefix for package import:\n\n```typescript\nimport Database from 'npm:libsql';\n```\n\n## Documentation\n\n* [API reference](docs/api.md)\n\n## Getting Started\n\nTo try out your first libsql program, type the following in `hello.js`:\n\n```javascript\nimport Database from 'libsql';\n\nconst db = new Database(':memory:');\n\ndb.exec(\"CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, email TEXT)\");\ndb.exec(\"INSERT INTO users (id, name, email) VALUES (1, 'Alice', 'alice@example.org')\");\n\nconst row = db.prepare(\"SELECT * FROM users WHERE id = ?\").get(1);\n\nconsole.log(`Name: ${row.name}, email: ${row.email}`);\n```\n\nand then run:\n\n```shell\n$ node hello.js\n```\n\nTo use the promise API, import `libsql/promise`:\n\n```javascript\nimport Database from 'libsql/promise';\n\nconst db = new Database(':memory:');\n\nawait db.exec(\"CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, email TEXT)\");\nawait db.exec(\"INSERT INTO users (id, name, email) VALUES (1, 'Alice', 'alice@example.org')\");\n\nconst stmt = await db.prepare(\"SELECT * FROM users WHERE id = ?\");\nconst row = stmt.get(1);\n\nconsole.log(`Name: ${row.name}, email: ${row.email}`);\n```\n\n#### Connecting to a local database file\n\n```javascript\nimport Database from 'libsql';\n\nconst db = new Database('hello.db');\n````\n\n#### Connecting to a Remote libSQL server\n\n```javascript\nimport Database from 'libsql';\n\nconst url = process.env.LIBSQL_URL;\nconst authToken = process.env.LIBSQL_AUTH_TOKEN;\n\nconst opts = {\n  authToken: authToken,\n};\n\nconst db = new Database(url, opts);\n```\n\n#### Creating an in-app replica and syncing it\n\n```javascript\nimport libsql\n\nconst opts = { syncUrl: \"\u003curl\u003e\", authToken: \"\u003coptional auth token\u003e\" };\nconst db = new Database('hello.db', opts);\ndb.sync();\n```\n\n#### Creating a table\n\n```javascript\ndb.exec(\"CREATE TABLE users (id INTEGER, email TEXT);\")\n```\n\n#### Inserting rows into a table\n\n```javascript\ndb.exec(\"INSERT INTO users VALUES (1, 'alice@example.org')\")\n```\n\n#### Querying rows from a table\n\n```javascript\nconst row = db.prepare(\"SELECT * FROM users WHERE id = ?\").get(1);\n```\n\n## Developing\n\nTo build the `libsql` package, run:\n\n```console\nLIBSQL_JS_DEV=1 npm run build\n```\n\nYou can then run the integration tests with:\n\n```console\nexport LIBSQL_JS_DEV=1\nnpm link\ncd integration-tests\nnpm link libsql\nnpm test\n```\n\n## License\n\nThis project is licensed under the [MIT license].\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in libSQL by you, shall be licensed as MIT, without any additional\nterms or conditions.\n\n[MIT license]: https://github.com/libsql/libsql-node/blob/main/LICENSE\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftursodatabase%2Flibsql-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftursodatabase%2Flibsql-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftursodatabase%2Flibsql-js/lists"}