【Rust日报】2021-08-10 如果你想实现一个GUI框架

如果你想实现一个GUI框架

So you want to write a GUI framework

当我们讨论GUI的时候我们在讨论什么?

根据一个GUI框架是否和平台/环境紧密集成,可以将GUI框架划分成两个阵营:

  1. 为游戏、嵌入式设备和Web应用设计的框架 提供应用层面需要的所有功能,包括和硬件交互、接收原始的事件流并将之呈送至各种类型的缓冲区和界面;

  2. 为桌面应用设计的框架:需要考虑兼容不同平台的API、设计模式和规范。

游戏和嵌入式设备的GUI

游戏和嵌入式设备的GUI框架,其中大部分可以从系统集成的角度来考虑:游戏和嵌入式应用程序不必做那么多,因为在只有一个window 的场景下,很多功能都需要应用自己去完成。

原生客户端应用的构成

  • 渲染窗口(Windowing)

    • Tabs: 标签页

    • Menus: 菜单栏

    • Painting: 绘图

    • Animation: 动画

    • Text: 文本

    • The compositor: 排版

    • Web views: 渲染HTML页面

  • 处理输入(Handling input)

    • Pointer:鼠标

    • Keyboard:键盘

  • 便利性(Accessibility): 大量辅助技术的总称

  • 国际化与本土化(Internationalization and Localization)

  • 其他一些常见和不常见的特性

将以上所有要素集成起来

  • 设计跨平台的API;

  • 不要拒绝 web view;

  • 原生的视觉和感觉;


MultiTool: 带有实时Web界面的系统监控工具

[Media] System Tools with real-time Web UI ????️ ????

MultiTool

项目使用RillRate(一个为机器人、微服务和IoT设备设计的实时UI工具),实现了对CPU、内存和系统信息的监控,将数据可视化并实时呈现在web界面上。 

TODO

  • 网络监控器

  • 磁盘监控器

  • 进程监控器

  • 其他一些惊喜


gzp: v0.3.0 现在支持多线程压缩snappy

gzp: v0.3.0 now with support for parallel compression with Snappy

关于gzp:

gzp是一个用Rust实现的多线程压缩编码库,目前支持Gzip格式(依赖flate2)和snappy格式(依赖rust-snappy)

链接
  • github:https://github.com/sstadick/gzp

  • crate: https://crates.io/crates/gzp


FeoBlog(类似Tumblr的分布式社交网络) v0.6.0 发布

FeoBlog (A distributed, Tumblr-like social network in Rust) v0.6.0 Released

新特性

  1. 支持OGP(Open Graph Protocol)协议;

  2. 更便捷地分享链接;

  3. db prune 和 db usage 命令;

改进

  • 更快的在服务器之间同步数据;

  • 更好的在浏览器上缓存静态文件;

  • 支持登陆用户设置背景颜色;

Bug修复

  • 切换页面时渲染组件(的bug);


一周一库(Rust Module of the Week):std::fs Part 2

std::fs (Part 2)

本周继续讲解(std::fs Part 1) Rust 标准库中std::fs模块

std::fs 是Rust标准库中操作文件系统的模块,包括创建、读取、更新、删除等常见操作。由于不同操作系统支持的API不尽相同,本文仅展示了与平台无关的一些例子:

  • 通过修改时间(mtime)来聚合相同年份、月份乃至日期的文件;

  • 硬链接(hard link)一个路径至另一个路径;

  • 递归创建目录;

  • 递归删除文件夹;

  • 拷贝文件;


From 日报小组 odd-cat

社区学习交流平台订阅:

Rust.cc 论坛: 支持 rss

微信公众号:Rust 语言中文社区

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值