graphix-package 0.5.0

A dataflow language for UIs and network programming, package types
Documentation

Graphix is a statically-typed functional programming language that compiles to reactive dataflow graphs. Unlike React or Vue where reactivity is a library bolted onto the language, Graphix is reactive at the language level — every expression is a node in a live graph, and changes propagate through automatically.

It feels familiar to anyone who knows Haskell, OCaml, or F#: lexically scoped, expression-oriented, with algebraic data types, pattern matching, parametric polymorphism, and first-class functions. It's particularly well-suited for building terminal UIs and working with streaming network data via netidx.

use tui;
use tui::block;
use tui::text;

let counter = 0;
let clock = time::timer(duration:1.s, true);
counter <- clock ~ (counter + 1);

block(
  #border: &`All,
  #title: &line("My First TUI"),
  #style: &style(#fg: `Green),
  &text(&"Counter: [counter]")
)

Install

cargo install graphix-shell

Requires Rust and clang / libkrb5-dev (Debian/Ubuntu) or clang-devel / krb5-devel (Fedora).

Learn More

graphix-lang.github.io/graphix

Documentation · Discord · GitHub

License

MIT