Jane Street 的 Bonsai:OCaml 构建 Web 应用
Bonsai: Janestreet's UI Library

Jane Street 内部几乎全部 Web 应用都基于 Bonsai 构建,这是一个用 OCaml 编写的 UI 库,灵感部分来自 Elm。Bonsai 将组件实现为纯函数状态机,支持增量渲染,只在状态相关部分变化时更新视图。它允许开发者按需组合状态和增量计算原语,而非将状态、增量和渲染捆绑在单一抽象中。由于使用 OCaml,前后端可共享语言与类型系统,极大提升代码可读性与可维护性。Bonsai 还提供强大的测试框架,支持程序化操作 UI 元素并观察 DOM 变化,甚至无需打开浏览器即可完成组件测试。此外,Bonsai 不仅限于 Web,还包含终端界面(Bonsai_term)等扩展库,展现其通用状态机设计的灵活性。
Bonsai 允许你按需组合状态和增量计算原语,而不是将它们捆绑在单一的 UI 组件抽象中。