【Rust日报】2023-04-04 Slint : 下一代 GUI 编程工具包

Slint : 下一代 GUI 编程工具包

Slint 1.0 正式发布了,这是一个重要的里程碑,标志着 Slint 可以逐步在生产环境中应用了。

Slint 的开发始于 2020 年 5 月,最早被称为 "SixtyFPS",旨在解决现代化 UI 开发的需求。

其使用 Rust 的声明式编程来构建桌面和嵌入式设备的本机用户界面,提供了易于阅读、编写和学习的语法,它的编译器优化并将 UI 描述翻译成本机代码,从而高效执行,该工具包还使用工具支持来进行代码完成、导航、重构和语法高亮显示,除了在编辑器中开发,还可以在 web editor中快速上手。

Slint 支持各种操作系统和处理器架构,包括 Linux、macOS、Windows、RISC-V、ARM Cortex-M 等。使用 Slint 构建的图形应用程序可以在内存小于 300kB 的系统上运行,这使其非常适合用于开发嵌入式设备的应用程序界面。该工具包具有未来可扩展性,可与多种编程语言(如 C ++、JavaScript 和 Rust)集成。

原文链接: https://slint-ui.com/blog/announcing-slint-1.0.html

github 地址: https://github.com/slint-ui/slint

SeaStreamer: 流处理工具包

SeaStreamer 是一个流处理工具包,目前提供了对于 kafka 和 redis 数据流的支持。

SeaStreamer 基于 async-std and tokio 两个异步框架,实现了高效的消息系统,同时向开发者提供了完善的 API。

下面是一个基本的 kafka 消费者示例:

#[tokio::main]
async fn main() -> Result<()> {
    env_logger::init();

    let stream: StreamUrl = "kafka://streamer.sea-ql.org:9092/my_stream".parse()?;
    let streamer = KafkaStreamer::connect(stream.streamer(), Default::default()).await?;
    let mut options = KafkaConsumerOptions::new(ConsumerMode::RealTime);
    options.set_auto_offset_reset(AutoOffsetReset::Earliest);
    let consumer = streamer
        .create_consumer(stream.stream_keys(), options)
        .await?;

    loop {
        let mess = consumer.next().await?;
        println!("{}", mess.message().as_str()?);
    }
}

详细内容可以参考 官方文档

github 地址: https://github.com/SeaQL/sea-streamer

使用 rust 实现 Zip 密码破解工具

作者用两篇文章详细说明了,如何实现一个 Zip 密码破解工具 zip-password-finder ,以及如何一步步对齐进行性能优化。

zip-password-finder 目前支持 ZipCrypto 和 AES 两种加密方式,通过多线程进行加速,支持字典破解和暴力破解两种方式,详细内容可以参考其博客和 github:

  • blog1: https://agourlay.github.io/brute-forcing-protected-zip-rust/

  • blog2: https://agourlay.github.io/follow-up-cracking-zip-rust/

  • github 地址: https://github.com/agourlay/zip-password-finder

-- From 日报小组 RustPlumber

社区学习交流平台订阅:

  • Rust.cc 论坛: 支持 rss

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

你可能感兴趣的:(rust,开发语言,后端)