【Rust 日报】2023-12-06 engrave -- 基于浏览器的代码编辑器

2023-12-11 15:54:22 浏览数 (2)

Viewbuilder -- Rust 的跨平台用户界面框架

该 crate 提供了一个模块化 GUI 库,可以用作整个框架,也可以与各个部分一起使用。

代码语言:javascript复制
let ui = UserInterface::new();
let tree = ui.insert(LocalTree::builder(Window::default()));

let text = tree.insert(Text::new("Hello World!"));
tree.root().push_child(text.key);

ui.run();
Features
  • 跨平台,支持桌面和移动设备
  • 使用类似 HTML 的 API 进行事件处理
  • 使用 dioxus 进行状态管理(可选)
  • CSS flexbox 和带有 taffy 的网格布局
  • 无障碍使用 Accesskit
  • 使用 Rust-skia 进行高性能渲染
入门

安装很简单:

代码语言:javascript复制
cargo add viewbuilder --features full
  • https://github.com/concoct-rs/viewbuilder

engrave -- 基于浏览器的代码编辑器

engrave 是使用 Rust 和 Dioxus 的桌面和网络文本编辑器。

代码语言:javascript复制
use dioxus::prelude::*;
use engrave::{language, Editor, UseEditor};

fn app(cx: Scope) -> Element {
    let editor = UseEditor::builder()
        .language(language::rust())
        .height(600.)
        .use_editor(cx, || include_str!("../src/editor/use_editor.rs"));

    render!(Editor { editor: editor })
}

效果展示: https://engrave-rs.netlify.app/Editor

目前还有很多 bug 欢迎大家贡献。

  • https://github.com/matthunz/engrave

0 人点赞