opengridv0.3.0

Introduction

What opengrid is, what is in the repository today, and what V1 deliberately leaves out.

opengrid is a portable Rust data and query engine with client/server execution, and on top of it an accessible data grid, table and pivot delivered as Web Components.

The product is the engine, not a JavaScript grid. The same query model, the same semantics and the same results run in WebAssembly in a browser, natively on a server, and against PostgreSQL. A conformance suite of JSON cases pins what “the same” means.

Status

Pre-1.0. On npm are @casoon/opengrid, with the elements and the engine, and the adapters for React, Vue and Svelte — see Installation. The Rust crates are not on crates.io yet. What each release changed is in CHANGELOG.md.

The public API is written down in The public API, and a test fails when it changes. That freezes the list, not the design: it may still change before 1.0.

The three elements

Element Use it when
<opengrid-table> The answer is read: a plain native <table>, ordinary copy and paste, browser find.
<opengrid-grid> The answer is worked with: selection, editing, filtering, sorting, column control, virtualization or paging.
<opengrid-pivot> Rows crossed with one column dimension, with subtotals.

All three ship in one module. The Cargo features grid and pivot exist for anyone who wants only one. In React, Vue and Svelte they come as components — see Frameworks.

What V1 deliberately does not do

  • No calculated fields. A column is stored or derived from a date part (year, month); there is no expression language.
  • One column dimension in a pivot, at most 256 generated columns and 2 000 rows. Over a limit you get an error with a sentence, never a silently truncated result.
  • Paging and virtualization are exclusive, not combined.
  • No CDN build. Adapters exist for React, Vue and Svelte; Angular, Lit and the rest use connect directly.

Edit this page on GitHub · Docs for v0.3.0