Skip to content

JSON Serialization and TypeScript definitions for WireValues - #148

Open
olynch wants to merge 63 commits into
trunk-for-2026-09-demofrom
json-values
Open

JSON Serialization and TypeScript definitions for WireValues#148
olynch wants to merge 63 commits into
trunk-for-2026-09-demofrom
json-values

Conversation

@olynch

@olynch olynch commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Using serde and specta we can automatically derive JSON serialization and compatible typescript types for WireValues.

This also stubs out methods that we want to implement for the FFI. While this is not complete, I'd like to review and merge this, so that I can start building the TypeScript generation on top of it.

lstwn added 30 commits August 10, 2026 11:35
…ariants as types) in an oblivious-to-JSON manner
…r crates to consume; Add end-to-end test for translating (but not running yet) FLIR to a query program
…tal backend to substitute multi way joins with a folded sequence of binary joins
…mpact structural transformations without AST boilerplate
…nditions into one selection whose condition ANDs the N conditions, as opposed to N individual Selections
…ery and have SourceExpr leaves reference a name in a Catalog of base tables
…chema, and per backend schemas of tables and views to decouple further from DBSP
szlangini and others added 25 commits September 3, 2026 13:07
Add the logical-to-physical lowering with a guided test ladder
build lowers the resolved plan into one coln-batch Datalog program,
feed stages rows per source (net z-weights; u64 and bool value slice),
commit recomputes the full result with the semi-naive fixpoint over
worst-case-optimal joins, and output returns a Snapshot: the full
current state of a sink, sorted and deduplicated, with a
to_debug_zset view for set-level comparison against the incremental
backend's consolidated deltas.

Anchor tests run the arithmetic-free reachability plan and a plain
u64 join through both pipelines and require identical rows. Rows
carrying strings fail loudly for now (TODO: remaining scalar types
after the end-to-end slice).

Structurally, the lowering module leaves its cfg(test) gate and
coln-batch becomes a regular dependency of coln-query. The stale,
unused coln-integrator dependency of coln-batch is removed; that dead
edge is what kept this direction cycle-free.
Now the user should not need to call .into()
Wire up the batch backend into Pipeline::batch()
@olynch
olynch changed the base branch from main to layout-init September 7, 2026 11:55
@olynch
olynch changed the base branch from layout-init to main September 7, 2026 11:55
@olynch
olynch changed the base branch from main to trunk-for-2026-09-demo September 7, 2026 11:55
Comment thread packages/coln-rpc/types.ts Outdated
@@ -1,5 +1,5 @@
// This file has been generated by Specta. Do not edit this file manually.
export type CommitHash = [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number];

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

interesting representation

@incipit0 incipit0 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I skimed throught the coln-store chagnes. LGTM

Perhaps you want to update trunk first with main, though

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants