< 返回版块

长琴 发表于 2022-03-27 21:14

Tags:rust,日报,移动开发,跨平台,bombs,norpl,Brainfuck,num2words,rust_android_ios

Google对25名Rust开源贡献者做出奖励

Rust 是系统级编程语言,重点关注内存安全。Google 在一些项目中使用了 Rust:包括 Android、Fuchsia 和 ICU4X;并一直参与在 Linux 内核中评估 Rust 的工作。Google 也是 Rust 基金会的创始成员。

部分列表(经允许)如下:

Winner Project
antoyo For work on rustc_codegen_gcc
Asherah Connor For maintaining comrak
David Hewitt For maintaining PyO3
Dirkjan Ochtman For maintaining rustls and quinn
Frank Denis For maintaining rust-ed25519-compact
Gary Guo For maintaining Rust for Linux
Jack Grigg For integrating RustCrypto into Fuchsia
Jack Huey For highly involved rust compiler work fixing a large number of crashes around higher-kinded types.
Joe Birr-Pixton For building rustls
Joshua Nelson For improving the developer workflow for contributing to Rust itself
Lokathor For creating tinyvec and bytemuck
Mara Bos For work on the Rust Libraries Team and the 2021 Rust Edition
Nikita Popov For maintaining the Rust compiler’s LLVM backend
Pietro Albini For maintaining crucial Rust infrastructure and working on the Rust core team
Ricky Hosfelt For maintaining cargo-outdated
Sébastien Crozet For creating dimforge
Simonas Kazlauskas For maintaining the Rust compiler’s LLVM backend

找了几次,没在原文中找到到底奖了啥;)不过,Google Open Source Peer Bonus 主页有:一张预付借记卡和一封奖励信 :D

另外,社区成员说 Gary Guo 大佬是中国人~

地址:https://opensource.googleblog.com/2022/03/Rewarding-Rust-contributors-with-Google-Open-Source-Peer-Bonuses.html

Rust移动开发与跨平台模式探究

社区张汉东老师关于 Rust 在移动开发和跨平台模式方面的探究,大纲如下:

  • Rust 语言 对 iOS 和 Android 平台支持状态
  • Rust 用于移动开发的几种方式
  • Android 官方支持 Rust 的方式
  • 给 Apple 的一封公开信:请用 Rust 替换 Objective-C

地址:https://zhuanlan.zhihu.com/p/484269271

bombs:单生产者多消费者通信类型

其中 Fuse 是生产者,Bomb 是消费者。

使用指南:

// Create a new fuse and bomb pair.
let (fuse, bomb) = Bomb::new(); 
 
// Clone `bomb` into thread.
let bomb_clone = bomb.clone();
thread::spawn(move || {
    loop {
        // Do some stuff...
     
        if let Some(_) = bomb_clone.exploded() {
            // Received close signal, break.
 
            // Clean up data values...
 
            break;
        }
    }
});
 
// Create another thread.
// Move original `bomb` into thread.
thread::spawn(move || {
    loop {
        // Do some other stuff...
     
        if let Some(_) = bomb.exploded() {
            // Received close signal, break.
 
            // Clean up data values...
 
            break;
        }
    }
});
 
// Do some different stuff...
 
// Send close signal.
let fire = fuse.light(());
 
// Wait for all inner threads to close safely (checked by `Bomb` drop).
while !fire.extinguished() { }
 
// Now safely quit the program.

GitHub:https://gitlab.com/nebneb0703/bombs

用Rust写个语言

使用 Rust 和 LALRPOP 从头开始实现一个 C 风格架构的编程语言。

视频:https://www.youtube.com/watch?v=OynJIFEsf3o

GitHub:https://github.com/eZanmoto/norpl

使用 Rust 实现 Brainfuck 语言。

Brainfuck 是 Urban Müller 于 1993 年创建的一种极简、深奥的编程语言。 该语言以其极简主义著称,仅包含八个简单的命令、一个数据指针和一个指令指针。虽然它是完全图灵完备的,但它并不是为了实际使用,而是为了挑战和娱乐程序员。 ——来自维基百科

Brainfuck 的 Hello World 是这样的:

++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
>.+++.------.--------.>+.>.

小编内心 OS:谁吃饱了撑的没事干搞这个^_^

地址:https://rtoch.com/posts/brainfuck-interpreter-implementation-part-1/

GitHub:https://github.com/CrazyRoka/brainfuck-interpreter

num2words:数字转文本

一个阿拉伯数字转自然语言的小工具。使用方法:

use num2words::num2words;
assert_eq!(num2words!(42), Ok(String::from("forty-two")));

也可以在命令行使用:

$ num2words 42
forty-two
$ num2words 10 --to EUR
ten euros

GitHub:https://github.com/Ballasi/num2words/

rust_android_ios寻找维护者

项目通过使用共享库来防止代码重复,保持完全原生的 UI 体验和对平台最新 API 的简单访问。它也非常灵活,允许在不同平台之间轻松迁移,包括传统的跨平台框架,如 Flutter 或 React Native。例如,您可以使用 Rust+React Native 或 Rust+Flutter 开发您的 MVP,然后迁移到原生 iOS/Android,而无需重写所有内容。 您甚至可以使用 WebAssembly 或桌面应用程序将您的核心重用于 Web 应用程序(同样,您可以使用本机或跨平台框架,如 Electron)。

如果你有意向,可以在项目上开个 Issue,或给作者发邮件:mailto:ivanhp978@gmail.com

GitHub:https://github.com/ivanschuetz/rust_android_ios


From 日报小组 长琴

社区学习交流平台订阅:

评论区

写评论
cdxjcl 2022-03-28 00:35

引线和炸弹? 绷不住了🤣

1 共 1 条评论, 1 页