【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

相关推荐
程序员老赵8 小时前
Docker 部署 Dolibarr:轻松搭建开源 ERP/CRM 平台
运维·前端·后端
逗脑IDE8 小时前
零基础学ESP32:RFID无线射频卡——让ESP32拥有“刷卡“能力!
开发语言·网络·人工智能·python·esp32·硬件开发
小师兄吃牛肉8 小时前
C语言篇:内联函数
c语言·开发语言
量化分析码农8 小时前
【Python量化系统工程实战 #06】从本地脚本到云端部署:量化系统的最小可运行架构
后端
136096757238 小时前
页面打不开不是 Nginx 的错
前端·后端
yuniko-n8 小时前
【Java】字符串相关坑点
java·开发语言·python
ALONE阿龙太原微码9 小时前
RBAC 以及主流权限模型
后端
斑鸠喳喳9 小时前
线程本地存储 ThreadLocal
java·后端
你顶住我先撤9 小时前
RocketMQ 消息类型
后端
jimy19 小时前
虚函数vtable,链接时看到构造函数,linker把符号地址写入vtable(三)
开发语言·c++