Skip to content

Commit 98f2c8f

Browse files
committed
Update README to reflect new version
1 parent 698e2ef commit 98f2c8f

8 files changed

Lines changed: 990 additions & 84 deletions

File tree

README.md

Lines changed: 825 additions & 80 deletions
Large diffs are not rendered by default.

site/.vitepress/config.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,21 @@ export default defineConfig({
4949
items: [
5050
{ text: 'Capabilities Overview', link: '/capabilities' },
5151
{ text: 'Live Queries', link: '/capabilities/live-queries' },
52+
{ text: 'Streaming', link: '/capabilities/streaming' },
53+
{ text: 'Changefeeds (WAL)', link: '/capabilities/changefeeds' },
5254
{ text: 'DeepRefs', link: '/capabilities/deeprefs' },
55+
{ text: 'Structured Writes', link: '/capabilities/structured-writes' },
5356
{ text: 'JSON Literals', link: '/capabilities/json-literals' },
5457
{ text: 'UPSERT', link: '/capabilities/upsert' },
58+
{ text: 'Version Binding', link: '/capabilities/version-binding' },
5559
]
5660
},
5761
{
5862
text: 'FlashQL',
5963
items: [
6064
{ text: 'FlashQL Overview', link: '/flashql' },
6165
{ text: 'Federation & Sync', link: '/flashql/foreign-io' },
66+
{ text: 'Sync', link: '/flashql/sync' },
6267
{ text: 'Language Reference', link: '/flashql/lang' },
6368
]
6469
},

site/capabilities.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ LinkedQL extends the SQL language to bring in useful syntax shorthands for relat
2424
| **Feature** | **Summary** | **Docs** |
2525
| :---------------- | :--------------------------------------------------------------------- | :--------------------------------------------------- |
2626
| **DeepRefs** | Follow foreign key relationships directly using simple arrow notation. | [DeepRefs](/capabilities/deeprefs) |
27+
| **Structured Writes** | Express relationship-aware writes directly in SQL-shaped DML. | [Structured Writes](/capabilities/structured-writes) |
2728
| **JSON Literals** | Model JSON objects and arrays using literal JSON syntax. | [JSON](/capabilities/json-literals) |
2829
| **UPSERT** | Perform the classic `INSERT...ON CONFLICT` statement in a single step. | [UPSERT](/capabilities/upsert) |
2930

@@ -87,7 +88,9 @@ LinkedQL extends the query execution layer with reactivity and automatic schema
8788
| **Feature** | **Summary** | **Docs** |
8889
| :------------------ | :--------------------------------------------------------------------- | :--------------------------------------------------------- |
8990
| **Live Queries** | Turn on reactivity over any query and get back a live view of your data. | [Live Queries](/capabilities/live-queries) |
90-
| **Timeline Engine** | Anchor a query to a fixed schema version for stable results over time. | *(Coming soon)* |
91+
| **Streaming** | Lazily iterate large result sets instead of materializing them all at once. | [Streaming](/capabilities/streaming) |
92+
| **Changefeeds (WAL)** | Subscribe to structured table-level commits and row mutations. | [Changefeeds](/capabilities/changefeeds) |
93+
| **Version Binding** | Anchor a query to explicit relation versions for stable schema contracts. | [Version Binding](/capabilities/version-binding) |
9194

9295
### Examples
9396

@@ -145,8 +148,8 @@ LinkedQL bundles an embeddable SQL engine, **FlashQL**, that brings its full cap
145148
| **Capability** | **Summary** | **Docs** |
146149
| :----------------- | :------------------------------------------------------------ | :----------------------------------- |
147150
| **Local Database** | Run a full SQL engine in memory — same semantics, zero setup. | [FlashQL](/flashql) |
148-
| **Federation** | Query local and remote data together in a single SQL surface. | [FlashQL](/flashql) |
149-
| **Sync** | Keep local and remote tables automatically synchronized. | [FlashQL](/flashql) |
151+
| **Federation** | Query local and remote data together in a single SQL surface. | [Federation & Sync](/flashql/foreign-io) |
152+
| **Sync** | Keep local and remote tables automatically synchronized. | [FlashQL Sync](/flashql/sync) |
150153

151154
### Examples
152155

@@ -196,4 +199,3 @@ client.on('sync:change', e => console.log('Δ', e.table, e.type));
196199
```
197200

198201
:::
199-

site/capabilities/changefeeds.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Changefeeds (WAL)
2+
3+
*Subscribe to structured table-level commits through `client.wal.subscribe(...)`.*
4+
5+
```js
6+
await client.wal.subscribe({ public: ['users'] }, (commit) => {
7+
console.log(commit.entries);
8+
});
9+
```
10+
11+
## Status
12+
13+
This page is currently a stub.
14+
15+
It exists so the README and docs can point to a dedicated home for:
16+
17+
* the WAL/changefeed API
18+
* selectors and subscription scope
19+
* `commit.entries` shape
20+
* when to use changefeeds versus live queries
21+
* driver/runtime-specific notes
22+
23+
## For now
24+
25+
See these pages while this guide is being expanded:
26+
27+
* [Live Queries](/capabilities/live-queries)
28+
* [Query Interface](/docs/query-api)
29+
* [The Realtime Engine](/engineering/realtime-engine)
30+

site/capabilities/streaming.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Streaming
2+
3+
*Iterate large result sets lazily instead of materializing everything at once.*
4+
5+
```js
6+
const rows = await client.stream(`SELECT * FROM users ORDER BY id`);
7+
8+
for await (const row of rows) {
9+
console.log(row);
10+
}
11+
```
12+
13+
## Status
14+
15+
This page is currently a stub.
16+
17+
It exists so the README and docs can point to a dedicated home for:
18+
19+
* `client.stream()`
20+
* lazy async iteration
21+
* batch-oriented fetching
22+
* when to prefer streaming over `query()`
23+
* runtime-specific notes for PostgreSQL, FlashQL, and `EdgeClient`
24+
25+
## For now
26+
27+
See these pages while this guide is being expanded:
28+
29+
* [Query Interface](/docs/query-api)
30+
* [Dialects & Clients](/docs/setup)
31+
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Structured Writes
2+
3+
*Express relationship-aware writes directly in SQL-shaped DML.*
4+
5+
```sql
6+
INSERT INTO users
7+
(email, parent_user ~> (id, email))
8+
VALUES
9+
('ada@example.com', ROW (50, 'parent@example.com'));
10+
```
11+
12+
## Status
13+
14+
This page is currently a stub.
15+
16+
It exists so the README and docs can point to a dedicated home for:
17+
18+
* relationship-aware `INSERT` and `UPDATE`
19+
* DeepRef payloads in DML
20+
* desugaring into lower-level SQL operations
21+
* supported shapes and limitations
22+
23+
## For now
24+
25+
See these pages while this guide is being expanded:
26+
27+
* [DeepRefs](/capabilities/deeprefs)
28+
* [JSON Literals](/capabilities/json-literals)
29+
* [UPSERT](/capabilities/upsert)
30+
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Version Binding
2+
3+
*Bind a query to the relation versions it was written against.*
4+
5+
```sql
6+
SELECT *
7+
FROM public.users@=3;
8+
```
9+
10+
```sql
11+
SELECT
12+
u.id,
13+
p.title
14+
FROM public.users@=3 AS u
15+
LEFT JOIN public.posts@=5 AS p
16+
ON p.author_id = u.id;
17+
```
18+
19+
## Status
20+
21+
This page is currently a stub.
22+
23+
It exists so the README and docs can point to a dedicated home for:
24+
25+
* relation version specs such as `@=`, `@<`, `@>`, `@<=`, `@>=`
26+
* how version binding differs from point-in-time replay
27+
* join safety and schema contracts
28+
* FlashQL-specific support details
29+
30+
## For now
31+
32+
See these pages while this guide is being expanded:
33+
34+
* [FlashQL Overview](/flashql)
35+
* [Language Reference](/flashql/lang)
36+

site/flashql/sync.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# FlashQL Sync
2+
3+
*Use `db.sync.sync()` to reconcile materialized and realtime views in FlashQL.*
4+
5+
```js
6+
await db.sync.sync();
7+
```
8+
9+
## Status
10+
11+
This page is currently a stub.
12+
13+
It exists so the README and docs can point to a dedicated home for:
14+
15+
* `origin`, `materialized`, and `realtime` views
16+
* `db.sync.sync()`, `status()`, `stop()`, and `resume()`
17+
* startup and reconnect flows
18+
* local-first orchestration patterns
19+
20+
## For now
21+
22+
See these pages while this guide is being expanded:
23+
24+
* [FlashQL Overview](/flashql)
25+
* [Federation & Sync](/flashql/foreign-io)
26+
* [The Realtime Engine](/engineering/realtime-engine)
27+

0 commit comments

Comments
 (0)