Percival 是一种声明式数据查询和可视化语言。它提供了一个基于Web的反应式notebook环境,用于探索复杂的数据集、生成交互式图形和共享结果。该项目目前处于早期阶段。
Percival结合了Datalog作为关系数据查询语言的灵活性和探索性可视化语法的优点。这些声明性组件通过一个反应式数据流系统进行交互。由于Percival使用了网络技术(包括用于多线程、沙盒执行的WebWorkers),完全交互式的notebook可以与互联网上的任何人分享,使数据分析对其他人更有意义。
Percival的核心是一个自定义的Datalog编译器,它使用Rust和WebAssembly构建,并与其notebook运行时集成。这通过分阶段的评估过程将查询语言编译为JavaScript,该过程还允许用户嵌入他们自己的JavaScript代码。该界面旨在轻量级、友好和可访问,并且没有隐藏的工作区状态。
Percival是一个完全在用户浏览器中运行的客户端Web应用程序。notebook界面使用Svelte构建,并使用TailwindCSS设计样式。它依赖于许多其他开源库,包括用于实时代码编辑和语法突出显示的 CodeMirror6、 用于Markdown渲染的Remark和KaTeX,以及用于前端捆绑的Vite。
Web前端的代码位于中src/,其中包含Svelte(in src/components/)和TypeScript(in src/lib/)的组合。这些模块在构建时捆绑到一个静态网站中,并且没有动态的服务器端渲染。
评论