{"id":31871578,"url":"https://github.com/linked-db/linked-ql","last_synced_at":"2025-10-12T20:26:39.127Z","repository":{"id":242778654,"uuid":"803772546","full_name":"linked-db/linked-ql","owner":"linked-db","description":"A modern take on SQL and SQL databases that checks all the boxes for modern apps","archived":false,"fork":false,"pushed_at":"2025-10-11T16:16:41.000Z","size":24093,"stargazers_count":18,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-11T16:27:29.402Z","etag":null,"topics":["database","database-migrations","database-schemas","database-versioning","db","embedded-database","live-queries","pglite-alternative","realtime-databases","sql","sql-parser","sql-plus-plus","sql-synthesis","sqlite-alternative","sync-engine","sync-engine-web","typed-sql"],"latest_commit_sha":null,"homepage":"https://linked-ql.netlify.app/","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/linked-db.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"ox-harris","patreon":null,"open_collective":"webqit","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2024-05-21T11:07:05.000Z","updated_at":"2025-10-11T09:14:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"3fb8fd4a-2f33-442a-a854-1d8958655d23","html_url":"https://github.com/linked-db/linked-ql","commit_stats":null,"previous_names":["linked-db/linked-ql"],"tags_count":150,"template":false,"template_full_name":null,"purl":"pkg:github/linked-db/linked-ql","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linked-db%2Flinked-ql","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linked-db%2Flinked-ql/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linked-db%2Flinked-ql/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linked-db%2Flinked-ql/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linked-db","download_url":"https://codeload.github.com/linked-db/linked-ql/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linked-db%2Flinked-ql/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279011048,"owners_count":26084865,"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","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"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":["database","database-migrations","database-schemas","database-versioning","db","embedded-database","live-queries","pglite-alternative","realtime-databases","sql","sql-parser","sql-plus-plus","sql-synthesis","sqlite-alternative","sync-engine","sync-engine-web","typed-sql"],"created_at":"2025-10-12T20:26:38.276Z","updated_at":"2025-10-12T20:26:39.122Z","avatar_url":"https://github.com/linked-db.png","language":"JavaScript","funding_links":["https://github.com/sponsors/ox-harris","https://opencollective.com/webqit"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \n# Linked QL\n\n_**Get insanely productive** with SQL!_\n\n[![npm version][npm-version-src]][npm-version-href][![npm downloads][npm-downloads-src]][npm-downloads-href]\n[![bundle][bundle-src]][bundle-href]\n[![License][license-src]][license-href]\n\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n\u003cpicture\u003e\n  \u003csource media=\"(max-width: 799px)\" srcset=\"https://github.com/linked-db/linked-ql/blob/master/resources/linked-ql-mobile-a.png?raw=true\"\u003e\n  \u003csource media=\"(min-width: 800px)\" srcset=\"https://github.com/linked-db/linked-ql/blob/master/resources/linked-ql-main-a.png?raw=true\"\u003e\n    \u003cimg src=\"https://github.com/linked-db/linked-ql/blob/master/resources/linked-ql-main-a.png?raw=true\" alt=\"Linked QL Banner\" width=\"100%\"\u003e\n\u003c/picture\u003e\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[Follow](https://x.com/LinkedQL) • [Sponsor](https://github.com/sponsors/ox-harris)\n\nLinkedQL is a robust database query client and next-generation migration wizard that makes database interactions and schema management a breeze! With the release of v0.3, we're redefining modern database abstraction and rethinking the traditional ORM.\n\nLinked QL is JS-based and database-agnostic—supporting PostgreSQL, MySQL and mariadb (on the backend), and [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) (in the browser)!\n\n\u003c/div\u003e\n\n\u003e [!IMPORTANT]  \n\u003e This is _@linked-db/linked-ql@0.3.*_ — our current iteration.  \n\u003e  \n\u003e See [_@linked-db/linked-ql@next_](https://github.com/linked-db/linked-ql/tree/next) for our upcoming iteration.\n\n\u003cdiv align=\"center\"\u003e\n\n---------------------------------\n\n[SELECT](https://github.com/linked-db/linked-ql/wiki/SELECT) • [INSERT](https://github.com/linked-db/linked-ql/wiki/INSERT) • [UPSERT](https://github.com/linked-db/linked-ql/wiki/UPSERT) • [UPDATE](https://github.com/linked-db/linked-ql/wiki/UPDATE) • [DELETE](https://github.com/linked-db/linked-ql/wiki/DELETE) • [CREATE](https://github.com/linked-db/linked-ql/wiki/CREATE) • [RENAME](https://github.com/linked-db/linked-ql/wiki/RENAME) • [ALTER](https://github.com/linked-db/linked-ql/wiki/ALTER) • [DROP](https://github.com/linked-db/linked-ql/wiki/DROP)\n\n[Docs](https://github.com/linked-db/linked-ql/wiki) • [LANG](https://github.com/linked-db/linked-ql/wiki/LANG) • [API](https://github.com/linked-db/linked-ql/wiki/API) • [CLI](https://github.com/linked-db/linked-ql/wiki/CLI) • [Migrations](https://github.com/linked-db/linked-ql/wiki/Migrations)\n\n\u003c/div\u003e\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n\u003ctable style=\"table-layout: fixed;\"\u003e\n\u003ctr\u003e\u003cth\u003e\n\n_What we're doing differently?_\n    \n\u003c/th\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\n\n\u003cdiv align=\"center\"\u003e\n\nNot an ORM like Prisma or Drizzle, and yet, not an ordinary database query client!\n\nHere's a breif tour:\n\n\u003c/div\u003e\n\n\u003c/td\u003e\u003c/td\u003e\n\u003ctr\u003e\u003ctd\u003e\n\u003cdetails _name=\"features\"\u003e\u003csummary\u003eA SQL-native experience\u003c/summary\u003e\n\nIf you miss the art and power of SQL, then you'll love Linked QL! While SQL as a language may have come to be *the exception* in the database tooling ecosystem, it is \u003cins\u003ethe default\u003c/ins\u003e in Linked QL! That is a go-ahead to, in fact, #usethelanguage whenever it feels inclined!\n\n##### └ *Preview:*\n\n```js\n// (1): A basic query with parameters\nconst result = await client.query(\n    `SELECT\n        name,\n        email\n    FROM users\n    WHERE role = $1`,\n    ['admin']\n);\nconsole.log(result);\n```\n\n```js\n// (2): A basic DDL query\nconst result = await client.query(\n    `CREATE TABLE users (\n        id int primary key generated always as identity,\n        name varchar,\n        email varchar,\n        phone varchar,\n        role varchar,\n        created_time timestamp\n    )`\n);\nconsole.log(result);\n```\n\n\u003c/details\u003e\n\u003c/td\u003e\u003c/tr\u003e\n\n\u003ctr\u003e\u003ctd\u003e\n\u003cdetails _name=\"features\"\u003e\u003csummary\u003ePowerful syntax sugars\u003c/summary\u003e\n\nGo ahead and model structures and traverse relationships like they were plain JSON objects—right within the language! Meet Linked QL's set of syntax extensions to SQL that \u003cins\u003edo the hard work\u003c/ins\u003e, \u003cins\u003ecut your query in half\u003c/ins\u003e, and even \u003cins\u003esave you multiple round trips\u003c/ins\u003e! *(See ➞ [JSON Sugars](https://github.com/linked-db/linked-ql/wiki/JSON-Sugars), [Magic Paths](https://github.com/linked-db/linked-ql/wiki/Magic-Paths), [Upserts](https://github.com/linked-db/linked-ql/wiki/UPSERT))*\n\n##### └ *Preview:*\n\n```js\n// (1): JSON Sugars\nconst result = await client.query(\n    `SELECT\n        name,\n        email,\n        { email, phone AS mobile } AS format1,\n        [ email, phone ] AS format2\n    FROM users`\n);\nconsole.log(result);\n```\n\n```js\n// (2): Magic Paths\nconst result = await client.query(\n    `SELECT\n        title,\n        content,\n        author ~\u003e name AS author_name\n    FROM books\n    WHERE author ~\u003e role = $1`,\n    ['admin']\n);\nconsole.log(result);\n```\n\n```js\n// (3): Upsert\nconst result = await client.query(\n    `UPSERT INTO public.users \n        ( name, email, role )\n    VALUES\n        ( 'John Doe', 'jd@example.com', 'admin' ),\n        ( 'Alice Blue', 'ab@example.com', 'guest' )`\n);\nconsole.log(result);\n```\n\n\u003c/details\u003e\n\u003c/td\u003e\u003c/tr\u003e\n\n\u003ctr\u003e\u003ctd\u003e\n\u003cdetails _name=\"features\"\u003e\u003csummary\u003eProgressive enhancement\u003c/summary\u003e\n\nWhile the typical ORM often imposes a high level of abstraction where that's not desired, Linked QL offers a \u003cins\u003eSQL-by-default, progressive enhancement\u003c/ins\u003e workflow that lets you think from the ground up! And at whatever part of that spectrum you find a sweet spot, you also get the same powerful set of features that Linked QL has to offer! *(See ➞ [Examples](https://github.com/linked-db/linked-ql/wiki/LANG))*\n\n##### └ *Preview:*\n\n```js\n// (a): SQL\nconst result = await client.query(\n    `SELECT\n        name,\n        email\n    FROM users\n    WHERE role = $1 OR role = $2`,\n    ['admin', 'contributor']\n);\n```\n\n```js\n// (b): Object-Based Query Builder\nconst result = await client.database('public').table('users').select({\n    fields: [ 'name', 'email' ],\n    where: { some: [\n        { eq: ['role', { binding: 'admin' }] },\n        { eq: ['role', { binding: 'contributor' }] }\n    ] }\n});\n```\n\n```js\n// (c): Function-Based Query Builder\nconst result = await client.database('public').table('users').select({\n    fields: [ 'name', 'email' ],\n    where: (q) =\u003e q.some(\n        (r) =\u003e r.eq('role', (s) =\u003e s.binding('admin')),\n        (r) =\u003e r.eq('role', (s) =\u003e s.binding('contributor')),\n    )\n});\n```\n\n\u003c/details\u003e\n\u003c/td\u003e\u003c/tr\u003e\n\n\u003ctr\u003e\u003ctd\u003e\n\u003cdetails _name=\"features\"\u003e\u003csummary\u003eAutomatic schema inference\u003c/summary\u003e\n\nWhereas the typical ORM requires you to feed them with your database schema (case in point: [Drizzle](https://orm.drizzle.team/)), Linked QL \u003cins\u003eautomatically infers it\u003c/ins\u003e and magically maintains 100% schema-awareness throughout (without necessarily looking again)! You get a whole lot of manual work entirely taken out of the equation! *(See ➞ [Automatic Schema Inference](https://github.com/linked-db/linked-ql/wiki/Automatic-Schema-Inference))*\n\n##### └ *Preview:*\n\n*Simply \u003cins\u003eplug\u003c/ins\u003e to your database and \u003cins\u003eplay\u003c/ins\u003e:*\n\n```js\n// Import pg and LinkedQl\nimport pg from 'pg';\nimport { SQLClient } from '@linked-db/linked-ql/sql';\n\n// Connect to your database\nconst connectionParams = { connectionString: process.env.SUPABASE_CONNECTION_STRING }\nconst pgClient = new pg.Client(connectionParams);\nawait pgClient.connect();\n\n// Use LinkedQl as a wrapper over that\nconst client = new SQLClient(pgClient, { dialect: 'postgres' });\n```\n\n*Query structures on the fly... without the upfront schema work:*\n\n```js\nconst result = await client.query(\n    `SELECT\n        access_token,\n        user_id: { email, phone, role } AS user,\n        last_active\n    FROM auth.users\n    WHERE user_id ~\u003e email = $1`,\n    ['johndoe@example.com']\n);\n```\n\n\u003c/details\u003e\n\u003c/td\u003e\u003c/tr\u003e\n\n\u003ctr\u003e\u003ctd\u003e\n\u003cdetails _name=\"features\"\u003e\u003csummary\u003eAutomatic schema versioning\u003c/summary\u003e\n\nWhile the typical database has no concept of versioning, Linked QL comes with it to your database, and along with it a powerful rollback (and rollforward) mechanism! On each DDL operation you make against your database (`CREATE`, `ALTER`, `DROP`), you get a savepoint automatically created for you and a seamless rollback path you can take anytime! *(See ➞ [Automatic Schema Versioning](https://github.com/linked-db/linked-ql/wiki/Automatic-Schema-Versioning))*\n\n##### └ *Preview:*\n\n*Perform a DDL operation and obtain a reference to the automatically created savepoint:*\n\n```js\n// (a): Using the \"RETURNING\" clause at DDL execution time\nconst savepoint = await client.query(\n    `CREATE TABLE public.users (\n        id int,\n        name varchar\n    )\n    RETURNING SAVEPOINT`,\n    { desc: 'Create users table' }\n);\n```\n\n```js\n// (b): Or using the database.savepoint() API at any time\nconst savepoint = await client.database('public').savepoint();\n```\n\n*Either way, see what you got there:*\n\n```js\n// (a): Some important details about the referenced point in time\nconsole.log(savepoint.versionTag()); // 1\nconsole.log(savepoint.commitDesc()); // Create users table\nconsole.log(savepoint.commitDate()); // 2024-07-17T22:40:56.786Z\n```\n\n```js\n// (b): Your rollback path\nconsole.log(savepoint.reverseSQL());\n// \"DROP TABLE public.users CASCADE\"\n```\n\n```js\n// (c): Your rollback magic wand button\nawait savepoint.rollback({\n    desc: 'Users table no more necessary'\n});\n```\n\n\u003c/details\u003e\n\u003c/td\u003e\u003c/tr\u003e\n\n\u003ctr\u003e\u003ctd\u003e\n\u003cdetails _name=\"features\"\u003e\u003csummary\u003eDiff-based migration\u003c/summary\u003e\n\nWhereas schema evolution remains a drag in the database tooling ecosystem, it comes as a particularly nifty experience in Linked QL! As against the conventional script-based migrations approach, Linked QL follows a diff-based approach that lets you manage your entire DB structure \u003cins\u003edeclaratively\u003c/ins\u003e out of a single `schema.json` (or `schema.yml`) file! *(See ➞ [Migrations](https://github.com/linked-db/linked-ql/wiki/Migrations))*\n\n##### └ *Preview:*\n\n*Declare your project's DB structure:*\n\n\u003e `./database/schema.json`\n\n```js\n[\n    {\n        \"name\": \"database_1\",\n        \"tables\": []\n    },\n    {\n        \"name\": \"database_2\",\n        \"tables\": []\n    }\n]\n```\n\n\u003e *For an existing DB, usa a command to generate your DB structure: `npx linkedql generate`.*\n\n*Extend your database with tables and columns. Remove existing ibjects or edit them in-place. Then, use a command to commit your changes to your DB:*\n\n```cmd\nnpx linkedql commit\n```\n\n\u003c/details\u003e\n\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003cbr\u003e\n\nAnd we've got a few things in the radar: extensive TypeScript support (something we love about Prisma); Linked QL Realtime—a realtime data API for offline-first applications.\n\n\u003c/div\u003e\n\n\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cbr\u003e\n\n\u003ctable style=\"table-layout: fixed;\"\u003e\n\u003ctr\u003e\u003cth\u003e\n\n_Getting Started_\n    \n\u003c/th\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\n\n\u003cdiv align=\"center\"\u003e\n\nInstall Linked QL:\n\n\u003ccode\u003enpm install @linked-db/linked-ql\u003c/code\u003e\n\n\u003c/div\u003e\n\n\u003c/td\u003e\u003c/td\u003e\n\u003ctr\u003e\u003ctd\u003e\n\u003cdetails _name=\"setup\"\u003e\u003csummary\u003ePostgres / Supabase / Neon / etc\u003c/summary\u003e\n\nInstall and connect the [`pg`](https://github.com/brianc/node-postgres) client. (Or another postgres client of your choice.) Use Linked QL as a wrapper over that.\n\n```cmd\nnpm install pg\n```\n\n```js\n// Import pg and LinkedQl\nimport pg from 'pg';\nimport { SQLClient } from '@linked-db/linked-ql/sql';\n\n// Connect pg\nconst connectionParams = {\n    host: 'localhost',\n    port: 5432,\n};\nconst pgClient = new pg.Client(connectParams);\nawait pgClient.connect();\n\n// Use LinkedQl as a wrapper over that\nconst client = new SQLClient(pgClient, { dialect: 'postgres' });\n```\n\nFor Supabase/Neon/etc., simply update `connectionParams` to use the *connectionString* for your remote DB:\n\n```js\nconst connectionParams = { connectionString: process.env.SUPABASE_CONNECTION_STRING };\n```\n\n\u003e **Note that your postgres database must be `v15.x` or higher.**\n\n\u003c/details\u003e\n\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\n\u003cdetails _name=\"setup\"\u003e\u003csummary\u003eMySQL / mariadb\u003c/summary\u003e\n\nInstall and connect the [`mariadb`](https://github.com/mariadb-corporation/mariadb-connector-nodejs) client. (Or, where applicable, the [`mysql`](https://www.npmjs.com/package/mysql)/[`mysql2`](https://www.npmjs.com/package/mysql2).) Use Linked QL as a wrapper over that.\n\n```cmd\nnpm install mariadb\n```\n\n```js\n// Import mariadb and LinkedQl\nimport mariadb from 'mariadb';\nimport { SQLClient } from '@linked-db/linked-ql/sql';\n\n// Connect pg\nconst myConnection = await mariadb.createConnection({\n    host: '127.0.0.1',\n    user: 'root',\n    port: 3306,\n    multipleStatements: true, // Required\n    bitOneIsBoolean: true, // The default, but required\n    trace: true, // Recommended\n});\n// Use LinkedQl as a wrapper over that\nconst client = new SQLClient(myConnection, { dialect: 'mysql' });\n```\n\n\u003e **Note that your mariadb database must be `v10.5.2` or higher.** (MySQL `v8` comparably.) In addition, Linked QL needs to be able to run multiple statements in one query. The `multipleStatements` connector parameter above is thus required. We also needed to have the `bitOneIsBoolean` parameter in place.\n\n\u003c/details\u003e\n\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\n\u003cdetails _name=\"setup\"\u003e\u003csummary\u003eIndexed DB (Coming soon)\u003c/summary\u003e\n\n```js\n// Import the IDB Client\nimport { IDBClient } from '@linked-db/linked-ql/idb';\n\n// Create an instance.\nconst client = new IDBClient;\n```\n\n\u003c/details\u003e\n\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\n\u003cdetails _name=\"setup\"\u003e\u003csummary\u003eIn-Mem DB (Coming soon)\u003c/summary\u003e\n\n```js\n// Import the ODB Client\nimport { ODBClient } from '@linked-db/linked-ql/odb';\n\n// Create an instance.\nconst client = new ODBClient;\n```\n\n\u003c/details\u003e\n\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003cbr\u003e\n\nAll `client` instances above implement the same [interface](https://github.com/linked-db/linked-ql/wiki/API)! The primary query interface therein is the [`client.query()`](https://github.com/linked-db/linked-ql/wiki/clientquery) method. For a quick list of examples, see [here](https://github.com/linked-db/linked-ql/wiki/LANG).\n\n\u003c/div\u003e\n\n\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[Docs](https://github.com/linked-db/linked-ql/wiki) • [LANG](https://github.com/linked-db/linked-ql/wiki/LANG) • [API](https://github.com/linked-db/linked-ql/wiki/API) • [CLI](https://github.com/linked-db/linked-ql/wiki/CLI) • [Migrations](https://github.com/linked-db/linked-ql/wiki/Migrations)\n\n\n[SELECT](https://github.com/linked-db/linked-ql/wiki/SELECT) • [INSERT](https://github.com/linked-db/linked-ql/wiki/INSERT) • [UPSERT](https://github.com/linked-db/linked-ql/wiki/UPSERT) • [UPDATE](https://github.com/linked-db/linked-ql/wiki/UPDATE) • [DELETE](https://github.com/linked-db/linked-ql/wiki/DELETE) • [CREATE](https://github.com/linked-db/linked-ql/wiki/CREATE) • [RENAME](https://github.com/linked-db/linked-ql/wiki/RENAME) • [ALTER](https://github.com/linked-db/linked-ql/wiki/ALTER) • [DROP](https://github.com/linked-db/linked-ql/wiki/DROP)\n\n---------------------------------\n\n\u003c/div\u003e\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e Note that this a fast-evolving project and a few things around here might change before `v1`! Note too that support for MySQL isn't yet on par with that of PostgreSQL.\n\n## Issues\n\nTo report bugs or request features, please submit an [issue](https://github.com/linked-db/linked-ql/issues).\n\n## License\n\nMIT. (See [LICENSE](https://github.com/linked-db/linked-ql?tab=MIT-1-ov-file))\n\n[npm-version-src]: https://img.shields.io/npm/v/@linked-db/linked-ql?style=flat\u0026colorA=18181B\u0026colorB=F0DB4F\n[npm-version-href]: https://npmjs.com/package/@linked-db/linked-ql\n[npm-downloads-src]: https://img.shields.io/npm/dm/@linked-db/linked-ql?style=flat\u0026colorA=18181B\u0026colorB=F0DB4F\n[npm-downloads-href]: https://npmjs.com/package/@linked-db/linked-ql\n[bundle-src]: https://img.shields.io/bundlephobia/minzip/@linked-db/linked-ql?style=flat\u0026colorA=18181B\u0026colorB=F0DB4F\n[bundle-href]: https://bundlephobia.com/result?p=@linked-db/linked-ql\n[license-src]: https://img.shields.io/github/license/linked-db/linked-ql.svg?style=flat\u0026colorA=18181B\u0026colorB=F0DB4F\n[license-href]: https://github.com/linked-db/linked-ql/blob/master/LICENSE\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinked-db%2Flinked-ql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinked-db%2Flinked-ql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinked-db%2Flinked-ql/lists"}