前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Rust日报】2021-08-10 如果你想实现一个GUI框架

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

作者头像
MikeLoveRust
发布2021-08-12 14:23:06
1.2K0
发布2021-08-12 14:23:06
举报
文章被收录于专栏:Rust语言学习交流

如果你想实现一个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 prunedb 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 语言中文社区

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Rust语言学习交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如果你想实现一个GUI框架
  • MultiTool: 带有实时Web界面的系统监控工具
  • gzp: v0.3.0 现在支持多线程压缩snappy
    • 关于gzp:
      • 链接
      • FeoBlog(类似Tumblr的分布式社交网络) v0.6.0 发布
      • 一周一库(Rust Module of the Week):std::fs Part 2
      相关产品与服务
      云服务器
      云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档