返回资讯中心
外部精选
软件工程
#开发者实时流

Scryer Prolog 浏览器端实现 BPMN 流程建模与推理

来源标题:Model and reason on processes through (Scryer) Prolog, directly in the browser

这是一个可直接在浏览器中运行的 BPMN 建模工具,用 Prolog 项描述流程模型,通过 Scryer Prolog 进行逻辑推理,并由 bpmn-js 完成图形渲染。用户每次编辑 bpmn.pl DSL 后,左侧编辑器内容会触发推理并同步更新图形。项目采用 Rust 与 WebAssembly 构建,核心模块包括语法解析、Scryer Prolog 引擎、Web Worker 以及基于 Leptos 的前端界面。

Hacker News 最新triska2026/11/2 · 今天4 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

用 Prolog 项为 BPMN 建模,用 Scryer Prolog 对其进行推理,并通过 bpmn-js 查看绘制结果。一切都在浏览器中运行,欢迎试用!

左侧编辑器保存着一段用 bpmn.pl DSL 编写的 Prolog 程序,其中定义了 model/1(DSL 参见 pizza.pl)。每次编辑时:

Crate Role crates/syntax 宽松的词法分析器(tokenize)、词法预检查与子句拆分器(check)。无依赖。 crates/engine 结果类型、worker 协议,以及位于默认 machine feature 之后的 Scryer Prolog Engine 及其驱动 prolog/driver.pl。 crates/worker 持有 Engine 的 Web Worker 二进制。 crates/web Leptos 页面:带补全的高亮编辑器、状态面板、worker 客户端、bpmn-js 绑定。

开发 要求:Rust(参见 rust-toolchain.toml)、clang(用于 ring 的 wasm 构建,ring 是 Scryer 的依赖)以及 Trunk。开发容器已安装全部三项。

cargo test --workspace # 原生测试,包含真实 Prolog cargo clippy --workspace --all-targets cd crates/web && trunk serve # http://127.0.0.1:8080

部署 Pull request 由 .github/workflows/ci.yml 检查(rustfmt、原生与 wasm32 的 clippy、测试)。每次推送到 main 都会以 release 模式构建站点并发布到 GitHub Pages(.github/workflows/pages.yml;需在 Settings → Pages → Source 中一次性设为 GitHub Actions)。手动构建:

cd crates/web && trunk build --release # 静态站点位于 crates/web/dist

从任何将 .wasm 以 application/wasm 发送的静态主机托管 dist/。若要部署到子路径,请添加 --public-url /sub/path/。构建是自包含的,无需互联网访问即可工作:bpmn-js 18.31.0 已随附于 crates/web/vendor/bpmn-js(附其许可证,该许可证要求 bpmn.io 水印保持可见)。

这些变通方案在代码中它们所在的位置都有文档说明:

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →