【Rust日报】2022-10-31 Makepad Framework 发布第一个完整示例应用程序 Ironfish

2022-11-28 16:13:26 浏览数 (1)

Makepad Framework 发布第一个完整示例应用程序 Ironfish

Ironfish 是一款功能丰富的合成器,该example crate 展示了 Makepad 框架的一些功能。

makepad 应该是目前最漂亮最快的Rust UI kit

  • 原文链接: https://docs.rs/crate/makepad-example-ironfish/0.3.0
  • ironfish demo 的演示链接: https://makepad.nl/makepad/examples/ironfish/src/index.html
  • ironfish 的 github 地址: https://github.com/makepad/makepad/tree/master/examples/ironfish

Rust 中使用 arbitrary 来做特性测试

arbitrary 库主要提供了 Arbitrary 以及相关功能, 他可以从任意的非结构化的输入生成结构化的数据. 通常情况下, 他可以配合类似 cargo-fuzz 等库进行 fuzz 测试, 但是本文展示了另外一个非常实用的用法:

领域模型和数据库实体之间的转换方法测试, 可以省去大量的手写代码测试.

例子如下:

代码语言:javascript复制
#[test]
fn test_vehicle_record_mapping() {
    fn prop(u: &mut arbitrary::Unstructured<'_>) -> arbitrary::Result<()> {
        let vehicle = Vehicle::arbitrary(u)?;
        let record = vehicle_to_record(vehicle.clone());
        let same_vehicle = record_to_vehicle(record);
        assert_eq!(vehicle, same_vehicle);
        Ok(())
    }
    arbtest::builder().run(prop);
}
  • 原文链接: https://www.greyblake.com/blog/property-based-testing-in-rust-with-arbitrary/
  • arbitrary github 地址: https://github.com/rust-fuzz/arbitrary/

Fedora 打包 rust 应用

对于 Linux 的发行版本, 由于大部分的程序是由 C 编写的,所以是天然的比较容易打包 C 程序和相关库的. 但是对于其他语言来说, 由于每个语言都有自己的依赖管理等, 所以导致打包其他语言的程序一直是一个问题.

本文讨论了 Fedora 在打包 Rust 应用时候遇到的一些问题.

原文链接: https://lwn.net/SubscriberLink/912202/79e7892b07f9350a/

--

From 日报小组 BobQin,FBI小白

0 人点赞