[package] name = "flowrs-app" version.workspace = true edition.workspace = true publish.workspace = true rust-version.workspace = true authors.workspace = true license = "MIT OR Apache-2.0" description = "flowRS's app layer: one component registry (layout, content, charts, tables, forms and the instruments) with typed, append-only props; apps as OpenUI Lang stored beside the graph and bound to its ports by reference; the deterministic default app of a graph; and the static check of an app (bindings, shape fit, the neural rule, flowrs-viz lint, the polish rules) as OpenUI error objects." [features] # The graph side: the document an app is stored in, infer, check, the host and shared # links. On by default. Without it the crate is the registry, the formatter and the planner # (`view`) over OpenUI values only: what an exported app's shell (flowrs-appshell) links, # so a generated project builds without the graph engine. default = ["graph"] graph = ["dep:flowrs-core", "dep:flowrs-viz", "dep:miniz_oxide", "dep:base64"] [dependencies] serde_json = { workspace = true } # The language apps are written in. flowrs-openui = { path = "../flowrs-openui" } # The graph an app binds to: its nodes, ports, wire types and units, and the document the # app is stored in. flowrs-core = { path = "../flowrs-core", optional = true } # Chart cards are flowrs-viz specs, parsed and linted as chart_check does. flowrs-viz = { path = "../flowrs-viz", optional = true } # A shared app's link: the document deflated (pure Rust, already in the bundle's tree) and # base64url-encoded into the URL fragment. miniz_oxide = { version = "0.8", optional = true } base64 = { version = "0.22", optional = true } [dev-dependencies]