【Rust日报】2026-04-24 Vizia 0.4 发布——纯 Rust 声明式响应式 GUI 框架

【Rust日报】2026-04-24 Vizia 0.4 发布------纯 Rust 声明式响应式 GUI 框架

Vizia 0.4 发布------纯 Rust 声明式响应式 GUI 框架

Vizia 0.4 版本正式发布!这是一个用于创建桌面 GUI 应用程序的纯 Rust 框架,采用声明式编程方式(无需 DSL 或宏)。API 设计受 SwiftUI 启发,利用信号(signals)实现响应式特性。

主要更新内容

• 响应式系统重构 :用基于信号的新响应式系统替换了原有的 lenses

• CSS 变量支持 :新增 CSS 变量功能

• 本地化改进 :增强本地化支持,包括 RTL(从右到左)布局和 fluent 日期时间函数

• 内置视图优化 :改进内置视图的本地化、无障碍访问和主题功能

• 性能提升 :全面的性能改进,特别是布局方面的优化

相关资源

• GitHub 仓库:https://github.com/vizia/vizia

• 完整更新日志:https://github.com/vizia/vizia/releases/tag/0.4.0

• 使用指南:https://book.vizia.dev/(已更新至 0.4 版本)

原文链接:https://github.com/vizia/vizia

gin-tonic 0.8 发布

gin-tonic 是一个 Rust protobuf 库,允许直接在传输层使用自定义类型,无需手动转换样板代码。

核心功能

• 提供 Protobuf 序列化和反序列化(类似 prost)

• 代码生成器(替代 prost-build)

• tonic 编解码器实现

• tonic-build 的增强包装器

• Scalar trait,可将任意 Rust 类型直接映射到 protobuf 传输类型

解决的问题

传统方式的痛点: 使用 prost 时,protobuf 中的 string my_uuid 会生成 Rust 的 String 类型,但实际需要 uuid::Uuid,导致需要在各处编写转换代码并处理解析错误。

gin-tonic 的解决方案: 通过在 .proto 文件中添加注解指定 Rust 类型: 直接生成所需的 uuid::Uuid 类型,转换逻辑统一在 Scalar trait 实现中处理。

主要特性

• 内置 UUID 支持: 提供 uuid_string 和 uuid_bytes 两种特性标志

• 自定义类型支持: 通过实现 Scalar trait 可支持任意类型

原文链接:https://www.reddit.com/r/rust/comments/1stm5wc/gintonic_08/

Jujutsu------新一代版本控制系统

Jujutsu 是一个功能强大的软件项目版本控制系统,旨在为新手和经验丰富的开发者提供易用的体验,适用于个人项目和大型团队协作。

核心特点

架构创新 - 将用户界面和版本控制算法与存储系统分离,可支持多种物理后端(如 Mercurial、Breezy 等) - 目前使用 Git 仓库作为存储层,兼容现有 Git 工具生态 - 提交和文件存储在 Git 中,而分支和元数据存储在自定义存储中

设计灵感来源

Git - 注重性能和速度,优化算法和数据结构 - 使用 Git 作为默认物理存储后端,便于互操作

Mercurial & Sapling - 采用 revset 语言选择提交 - 无需暂存区(staging area) - 匿名分支设计,无需为小改动命名 - 强大的历史重写功能 - 可配置的模板语言

原文链接:https://github.com/jj-vcs/jj

jed - 用于 JSON 的 sed 工具

jed 是一个命令行工具,将 sed 的强大功能引入 JSON 数据处理。它使用熟悉的 sed 语法,而不是发明新的查询语言。

核心理念

• 复用已有知识 :如果你会用 sed,就已经会用 jed

• 更高的学习投资回报率 :利用 sed、awk、vim 等经典工具的语法经验

• 避免重复学习 :不像 jq 等工具需要学习全新语言

工作原理

• 递归遍历 :从上到下递归遍历 JSON 文档

• 基于 JSON 值类型 :针对不同类型(Null、Bool、Number、String、Array、Object)应用不同操作

• 分类操作 :

• 值替换:适用于 String、Number、Bool、Null

• 键替换:仅适用于 Object

• 数组过滤:仅适用于 Array

主要功能

  1. 打印匹配部分 (p)

  2. 删除匹配部分 (d)

  3. 替换值 (s)

原文链接:https://github.com/camilomatajira/jed

相关推荐
Shinomiya1 小时前
我最近在学 Linux 进程控制:fork、退出码与进程等待
后端
雪落漂泊1 小时前
C++11(上)
开发语言·c++
企业数字化笔记1 小时前
固定资产Excel批量导入怎么防重复?资产编码、重复检查和错误回执
java·后端·excel
Kapaseker1 小时前
以为 Rust 快了 50000 倍,结果编译器根本没算
rust
SamDeepThinking1 小时前
Java 17内存屏障:为什么需要,怎么用
java·后端·面试
春涧草茶2 小时前
慢就是快12-2三种访问权限|getter与setter|魔法方法
开发语言·python
传奇开心果编程2 小时前
【Xilem 0.4 基础语法学与练】第11课(深入篇):为什么其他 Rust 框架不是一切皆设计图
学习·rust·前端框架
無限進步D2 小时前
Java Web 前端 简介
java·开发语言·前端·css·html·css3·web
qq_401700412 小时前
Qt QUrl 详解与代码示例
开发语言·数据库·qt
azhou的代码园2 小时前
景区游船预约服务系统
人工智能·spring boot·后端