Files
calctext/_bmad-output/implementation-artifacts/8-2-engine-integration-direct-linking.md
2026-03-16 19:54:53 -04:00

1.3 KiB

epic, story, title, status
epic story title status
8 8.2 Engine Integration (Direct Linking) draft

Epic 8 — Windows App (Rust + iced)

Goal: Fast, lightweight native Windows app -- single .exe, no runtime dependencies.

Story 8.2: Engine Integration (Direct Linking)

As a Windows developer building CalcPad, I want the iced app to directly link the Rust CalcPad engine with zero serialization overhead, So that the app is as fast as possible with no FFI boundary costs.

Acceptance Criteria:

Given the iced app's Cargo.toml includes calcpad_engine as a dependency When the app is compiled Then the engine is statically linked into the single .exe binary

Given the app calls SheetContext::new() and context.evaluate_line("2 + 2") When the engine processes the call Then the result is returned as a native Rust type (no JSON/string serialization boundary)

Given the app evaluates a full sheet When context.evaluate_sheet(text) is called Then all lines are evaluated with full dependency resolution and results are returned as a Vec<LineResult>

Given the engine is used directly via use calcpad_engine::SheetContext; When the app binary is built in release mode Then the engine code is inlined and optimized by the Rust compiler as if it were part of the app itself