flowrs-engine/crates/flowrs-appshell/Cargo.toml
flowRS fd958c0547 flowRS engine, cut from flowRS 3451b065
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-02 19:04:39 -05:00

52 lines
2.9 KiB
TOML

[package]
name = "flowrs-appshell"
version.workspace = true
edition.workspace = true
publish.workspace = true
rust-version.workspace = true
authors.workspace = true
license = "MIT OR Apache-2.0"
description = "The shell an exported flowRS app runs in: the program's labelled Teleplot lines read back as the values its app binds, the app's OpenUI Lang planned by flowrs-app's view into the same kit blocks the IDE draws, rendered as HTML on the IDE's tokens and kit classes in both skins, and served on loopback under a strict Content-Security-Policy. The same page is an MCP Apps `ui://` resource. With `export`, the project generator that ships it."
[features]
default = []
# The runtime bundle (`runtime`): the source of flowRS's runtime crates, as an exported project
# carries it in vendor/, made from the source this crate is compiled from (build.rs lists the
# files) with each manifest rewritten to stand alone. No graph engine, so the IDE's build can
# write it quickly (src/bin/runtime_bundle.rs).
bundle = ["dep:toml", "dep:semver", "dep:flowrs-boards"]
# The project generator (`export`): the graph, its codegen and scaffolds, infer and check, and
# the bundle it vendors. Off in a generated project, which links only the shell.
export = ["bundle", "dep:flowrs-core", "dep:flowrs-connect", "dep:syn", "dep:flowrs-iface", "flowrs-app/graph"]
[dependencies]
serde = { workspace = true }
serde_json = { workspace = true }
# The planner (`view`), the registry and the formatter, without the graph engine.
flowrs-app = { path = "../flowrs-app", default-features = false }
# The language an app is written in, and its runtime.
flowrs-openui = { path = "../flowrs-openui" }
flowrs-core = { path = "../flowrs-core", optional = true }
flowrs-connect = { path = "../flowrs-connect", optional = true }
# A robotics export (`robotics`) reads the unit off each edge's interface model.
flowrs-iface = { path = "../flowrs-iface", optional = true }
# The bundle reads the crates' manifests, the workspace's and its Cargo.lock. Already in the
# lock (flowrs-critic's).
toml = { version = "1", optional = true }
# The exported project's Cargo.lock is resolved as cargo resolves one, with cargo's own
# version requirements (src/lock.rs). Already in the lock (rustc_version's).
semver = { version = "1.0.28", optional = true }
# The board registry and, natively, the twin census the per-board fidelity contract is
# generated from (src/fidelity.rs). Already in the tree through flowrs-core.
flowrs-boards = { path = "../flowrs-boards", optional = true }
# The form contract reads the generated program as syntax (its `unsafe`, by function), not as
# text. syn 3 with `full` and `visit` is flowrs-core's already.
syn = { version = "3.0.9", features = ["full", "parsing", "visit"], optional = true }
[dev-dependencies]
# The IDE build's writer of the runtime bundle (Trunk's post-build hook).
[[bin]]
name = "flowrs-runtime-bundle"
path = "src/bin/runtime_bundle.rs"
required-features = ["bundle"]