npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@linked-db/linked-ql

v0.4.5009

Published

A query client that extends standard SQL with new syntax sugars and enables auto-versioning capabilities on any database

Readme

LinkedQL

A modern take on SQL and SQL databases

npm version npm downloads bundle License

Simplify and unify your entire database layer in a single interface 🛸 LinkedQL is a database client (client.query()) for PostgreSQL and MySQL/MariaDB, but more broadly, an idea: SQL reimagined for modern apps ↗. LinkedQL solves reactivity, relationships, JSON, schemas, embedding, federation & sync, and more in under 80 KiB min | zip.


[!NOTE] You’re viewing @linked-db/linked-ql — the newest iteration.
For the prev 0.3.x branch, see linked-db/[email protected].*.

[!IMPORTANT] 🚀 LinkedQL is in active development and evolving daily. Current status = alpha. You’re welcome to experiment, but it’s not yet suited for production apps.


| Guide | Explore | Project | |:------------------------------------------|:----------------------------------------------|:----------------------------------| | Installation | Capabilities | Status | | Clients & Dialects | Features | Contributing | | Query Interface | Documentation | License |


Installation

LinkedQL is distributed as an npm package. Install it with:

npm install @linked-db/linked-ql

The package provides clients for all supported SQL dialects — including FlashQL, the in-memory SQL engine for local or offline use.

Initialization

Import and initialize the client for your use case. You can run either fully in-memory or with a database. Here are two quick examples:

Run Locally with FlashQL

FlashQL lets you run SQL queries entirely in memory — with zero setup.

import { FlashQL } from '@linked-db/linked-ql/flashql';

const client = new FlashQL();

await client.query(`CREATE TABLE users (id INT PRIMARY KEY, name TEXT)`);
const result = await client.query(`
  INSERT INTO users (id, name) VALUES (1, 'Ada'), (2, 'Linus');
  SELECT * FROM users;
`);

console.log(result.rows);
// [{ id: 1, name: 'Ada' }, { id: 2, name: 'Linus' }]

FlashQL is ideal for:

  • Local-first and offline-first apps
  • Running SQL over runtime data
  • Testing and prototyping

Connect to a Database

Connect to your database from the list of supported dialects below. Here’s an example using PostgreSQL:

import { PGClient } from '@linked-db/linked-ql/postgres';

const client = new PGClient({
  host: 'localhost',
  port: 5432,
  user: 'postgres',
  password: 'password',
  database: 'myapp',
});

await client.connect();

const result = await client.query(`SELECT 10 AS value`);
console.log(result.rows); // [{ value: 10 }]

await client.disconnect();

Clients & Dialects

| Dialect | Import Path | Guide | | :------------------ | :----------------------------- | :--------------------------------- | | PostgreSQL | @linked-db/linked-ql/postgres | PostgreSQL ↗ | | MySQL | @linked-db/linked-ql/mysql | MySQL ↗ | | MariaDB | @linked-db/linked-ql/mariadb | MariaDB ↗ | | FlashQL (In-Memory) | @linked-db/linked-ql/flashql | FlashQL ↗ |

Query Interface

LinkedQL maintains a unified and familiar interface across all dialects — whether remote or local. Method signatures and return values are consistent and documented in the Client API Reference ↗


Capabilities

| Capability | Description | | :---------------------------- | :----------------------------------------------------------------------------------------------------------------------------- | | ⚡ Live Queries | Turn on reactivity over any SQL query with { live: true }. No extra infrastructure required. | | 🔗 DeepRef Operators | Traverse relationships using simple path notation (~> / <~). Insert or update nested structures using same notation. | | 🧩 JSON Literals | Bring JSON-like clearity to your queries with LinkedQL's first-class support for JSON notation. | | 🪄 Upserts | Do upserts with a literal UPSERT statement. | | 🧠 Schema Versioning | (Coming soon) Get automatic schema versioning on your database: automatic snapshots and historical introspection. | | 💾 Edge & Offline Runtime | (FlashQL) Run or embed SQL locally — in browsers, workers, or edge devices — for local-first and offline-first applications. | | 🌐 Federation & Sync | (Alpha) Unify remote databases, REST endpoints, and local stores into a single relational graph with seamless synchronization. |

Features

| Feature | Description | | :---------------------------------------- | :------------------------------------------------------------------------------------------------------ | | 💻 Classic client.query() Interface | Same classic client interface; advanced capabalities for modern applications. | | 🔗 Multi-Dialect Support | A universal parser that understands PostgreSQL, MySQL, MariaDB, and FlashQL — one client, many dialects. | | 💡 Lightweight Footprint | A full reactive data layer in one compact library — under 80 KiB (min/zip). | | 🎯 Automatic Schema Inference | No upfront schema work. LinkedQL auto-discovers your schema and stays schema-driven across complex tasks. | | 🪄 Diff-Based Migrations | (Coming soon) Evolve schemas declaratively through change detection instead of hand-written migration scripts. |

Documentation

Visit the LinkedQL documentation site ↗

| Jump to | | |:--|:--| | Getting Started ↗ | Get started with LinkedQL in under three minutes. No database required | | Capabilities Overview ↗ | Jump to the Capabilities section. | | Meet FlashQL ↗ | Meet FlashQL — LinkedQL's embeddable SQL engine. | | Engineering Deep Dive ↗ | Dig into LinkedQL's engineering in the engineering section. |


⏳ Status

| Component | Status | Note | | :----------------- | :-------- | :-------------------- | | Parser & Compiler | 🟩 100% | Stabilizing | | Transform Engine | 🟩 100% | Stabilizing | | Drivers (PG/MySQL) | 🟩 97% | Stabilizing; MySQL nearing parity | | FlashQL Engine | 🟩 99% | Expanding | | Realtime Engine | 🟩 99% | Stabilizing | | Timeline Engine | 🟨 20% | Planned | | Migration Wizard | ⬜ 10% | Planned | | IDE Tooling | ⬜ 5% | Early hooks | | Docs (vNext) | 🟩 99% | Expanding |

🟩 Complete | 🟨 In Progress | ⬜ Not Started

🤝 Contributing

LinkedQL is in active development — and contributions are welcome!

Here’s how you can jump in:

  • Issues → Spot a bug or have a feature idea? Open an issue.
  • Pull requests → PRs are welcome for fixes, docs, or new ideas.
  • Discussions → Not sure where your idea fits? Start a discussion.

🛠️ Local Setup

⤷ clone → install → test

git clone https://github.com/linked-db/linked-ql.git
cd linked-ql
git checkout next
npm install
npm test

📝 Tips

  • Development happens on the next branch — be sure to switch to it as above after cloning.
  • Consider creating your feature branch from next before making changes (e.g. git checkout -b feature/my-idea).
  • Remember to npm test before submitting a PR.
  • Check the Progress section above to see where help is most needed.

🔑 License

MIT — see LICENSE