bo-grid · Svelte 5 · MIT

Die Datentabelle für bewegte Märkte.

Kurstafeln, Beobachtungslisten, Order-Blotter und Orderbücher. Zehntausende Ticks pro Sekunde landen in einem Update pro Bild, und nur die geänderten Zellen werden neu gezeichnet. Gruppierung, Pivot, Baumdaten und Excel-Export stecken im selben kostenlosen Paket.

npm i bo-grid

Simulierte Kurse. Jede geänderte Zelle blinkt; Ctrl/⌘+F findet ein Symbol.
  • 1.000 × 24Symbole und Spalten auf einer Tafel
  • 30.000Ereignisse pro Sekunde, in einem Update pro Bild
  • ~45 KBKern mit gzip, keine Laufzeitabhängigkeiten
  • 8Theme-Presets und Ihre eigenen Tokens

Gemessen mit einem Produktions-Build in Chrome: Eine Tafel mit 1.000 Symbolen und 24 Spalten braucht bei 10.000 Ereignissen pro Sekunde etwa 9 ms Arbeit im Hauptthread pro Bild und bei 30.000 etwa 12 ms, wobei jede geänderte Zelle blinkt.

Gemacht für Kurse

Was eine Trading-Oberfläche braucht, ist eingebaut und nicht einem Zell-Renderer überlassen.

  • Ein Blinken bei jedem TickZellen färben sich bei jeder Änderung nach oben oder unten und können die Größe der Bewegung zeigen. Auf einer vollen Tafel bleibt dank gehaltener Blinkeffekte jeder einzelne günstig.
  • Farben für PreisgrenzenObergrenze, Untergrenze und Referenzkurs in den Farben, die Börsen verwenden, mit Formatierung nach Tick-Größe und Sitzungsstatus.
  • Gestreamt wird nur, was sichtbar istEin zusammenfassender Tick-Stream ändert Zeilen an Ort und Stelle, und Viewport-Abonnements streamen nur die sichtbaren Symbole.
  • Helfer für Orderbuch und Time & SalesHelfer für ein Orderbuch, eine Preisleiter und Time & Sales, in einem optionalen Einstiegspunkt von etwa 1 KB.

Ein Rundgang

Eine Kurstafel in den Farben der Börse, mit geöffneter Suchleiste und fixierten Zeilen über dem Scrollbereich.
Eine Kurstafel in den Farben der Börse, mit geöffneter Suchleiste und fixierten Zeilen über dem Scrollbereich.
Reichhaltige Zellen ab Werk: Heat, Signale, Unterbeschriftungen und Kerzen-Sparklines.
Reichhaltige Zellen ab Werk: Heat, Signale, Unterbeschriftungen und Kerzen-Sparklines.
Eine Tabellenkalkulation, wenn Sie eine brauchen: Zeilennummern, eine Filterzeile, typisierte Editoren, Ausfüllkästchen und Rückgängig, im hellen Design.
Eine Tabellenkalkulation, wenn Sie eine brauchen: Zeilennummern, eine Filterzeile, typisierte Editoren, Ausfüllkästchen und Rückgängig, im hellen Design.

Alles in einem Paket

Eine Installation, keine Add-ons, kein Lizenzschlüssel.

Echtzeit
Blinken bei Ticks · Größe jeder Bewegung · Änderungen an Ort und Stelle · ein zusammenfassender Tick-Stream · nur die sichtbaren Zeilen streamen · Live-Neusortierung
Daten
Einfache und mehrfache Sortierung · Text-, Zahlen-, Datums- und Mengenfilter · Schnellsuche · Suchen in der Tabelle · Gruppierung mit Zwischensummen · Pivot · Baumdaten · Master-Detail · serverseitige Zeilen
Bearbeiten
Inline- und typisierte Editoren · Validierung · Zwischenablage · Ausfüllkästchen · Rückgängig und Wiederholen
Layout
Fixierte Spalten und Zeilen · Spalten, die mit den Werten skalieren oder breiter werden · Größe ändern, umsortieren, ausblenden · Kopfzeilengruppen · verbundene Zellen · Spaltenvirtualisierung · Seitenumbruch
Aussehen
8 Theme-Presets und Ihre eigenen Tokens · Datenbalken, Symbole und Farbskalen · Sparklines · Lokalisierung
Plattform
Tastatur und Screenreader · SSR und SvelteKit · Layout speichern und wiederherstellen · Export und Import von CSV und Excel

In einer Minute starten

Nativ in Svelte 5. React, Vue, Angular oder reines JavaScript nutzen das Element <bo-grid> und brauchen kein Svelte-Setup.

Svelte
<script lang="ts">
  import { Grid, type ColumnDef } from 'bo-grid';

  const columns: ColumnDef[] = [
    { type: 'text',    key: 'symbol', header: 'Symbol' },
    { type: 'price',   key: 'price',  header: 'Price', flash: 'auto', showChange: true },
    { type: 'percent', key: 'change', header: 'Chg %' },
    { type: 'volume',  key: 'volume', header: 'Volume' },
  ];
  let rows = $state.raw(quotes);
</script>

<Grid {rows} {columns} height={480} fitColumns findBar />
Jedes Framework
// React, Vue, Angular or plain JS: no Svelte setup
import 'bo-grid/element';

document.querySelector('bo-grid').config = {
  columns,
  rows,
  height: 480,
  theme: 'dark',
  // Ticks patch rows in place: only changed cells repaint
  onReady: (api) => feed.onTicks((changes) => api.patchRows(changes)),
};

Neben dem Chart

bo-grid und TradeCanvas sind dafür gebaut, nebeneinander zu stehen: eine Tafel, deren Zeilen einen Chart öffnen, ein Chart neben einem Order-Blotter. Zusammen sind sie der Anfang eines Werkzeugkastens für Trading-Software: Charts, Ordereingabe, Kurstafeln und Orderflow.

Bauen Sie eine Trading-Oberfläche mit TradeCanvas?

Wir würden gern davon hören.