架构
简介
Deft是一个通用的UI引擎,允许使用Rust和JavaScript构建跨平台应用。它使用统一的渲染引擎(skia)和JavaScript引擎(quickjs),确保在所有平台都拥有一致的表现。
Deft提供常用的基础组件,同时允许创建自绘组件,这提供了极大的灵活性。基础组件和自绘组件使用Rust编写,以提供更好的性能。
Deft提供便捷高效的跨语言调用(Rust和JavaScript),可以高效地调用系统接口。
Deft不是什么
- 不是WebView。Deft不提供完整Web环境,即使它提供很多跟Web一致的API。
- 不是一个大而全的UI框架。Deft更多的是提供基础能力,同时提供易用的扩展机制,以保持轻量和灵活。
- 不是高性能JavaScript引擎。Deft使用QuickJS解析执行JavaScript,性能并不是QuickJS的优势,性能问题应该使用Rust解决。
主要组件
deft [Rust]
Rust层使用的主要依赖库,提供应用初始化、启动、运行时、基础组件等能力。
deft-build [Rust]
Rust层使用的构建脚本依赖,提供开发和构建相关能力。
deft-macros [Rust]
Rust使用的宏工具包,提供方便的跨语言调用能力。
deft-sys [JS]
JS层类型定义库,它不是必须的,当你希望IDE提供类型提示的时候,才需要使用它。
deft-react [JS]
JS层React支持库,它不是必须的,当你希望使用React开发应用时,才需要使用它。
外部组件
deft-skia-safe
提供2D图形渲染相关能力,从rust-skia项目fork出来的,以更好适配Deft
deft-quick-js
提供JS解析、执行相关能力,从quick-js项目fork出来的,以更好适配Deft
deft-winit
提供窗口创建、管理相关能力,从winit项目fork出来的,以更好适配Deft
deft-yoga
提供布局计算相关能力,从yoga-rs项目fork出来的,以更好适配Deft