FOSDEM 2023[1] 是软件开发人员见面、分享想法和协作的免费活动。每年,来自世界各地的数千名自由和开源软件开发人员齐聚布鲁塞尔。你不需要注册。只需出现并加入!
和 Rust 相关的分享视频列表如下:
相关视频在 Youtube 也有发布。
美国国家安全局(NSA)最近发布了一份关于内存安全重要性的网络安全信息表,他们在其中建议从内存不安全的编程语言(如 C 和 C++)转移到内存安全的编程语言(如 Rust)。 C++ 之父 Bjarne Stroustrup 博士的回应“Rust 等内存安全语言的安全性并不优于C++”。
Rust 社区针对Cpp之父这一言论作出了回应[27],一些观点摘录如下:
更多讨论请参考原贴。
cargo-semver-checks[28] 最新版本性能提升了 2000 多倍,具体来说,是从 5 小时缩短到 8 秒,快了 2272 倍。
虽然 semver-checking 对于大多数 crate来说都在一分钟左右完成,但 aws-sdk-ec2
该过程则花费了5 个多小时。cargo-semver-checks 它建立在 Trustfall[29] 之上,Trustfall 是一个查询引擎,支持通过特殊 API 插入来查询任何类型的数据源。最新版本中,Trustfall 进行了优化[30],让性能得以提升。
Prossimo 最近发布的文章《改进 Rust 编译时间以启用内存安全》[31],介绍了由 Prossimo 赞助 Rémy Rakic 作为 Rust 编译器性能工作组的一员一直致力于改善构建时间的倡议。
Rust 编译时间是需要改进的领域,避免编译时间可能成为采用 Rust 的障碍,因此改进它们可以帮助扩大语言的影响。这是 Prossimo 的目标之一:提高更多内存安全软件的潜力,特别是在互联网基础设施的最关键部分(例如,网络、TLS、DNS、操作系统内核等)。
“Prossimo[32] 是互联网安全研究组 (ISRG) 的一个项目,目标是将 Internet 的安全敏感软件基础架构转移到内存安全代码。
Rémy Rakic 与 Prossimo 合作处理以下优先事项:
关于改进编译时间的更多工作内容可以参考原文。
cargo-dist[33] 可以帮助开发者解决大多数在发布二进制文件中遇到的问题。
glidesort[34]是 Rust 实现的一种新的稳定排序,随机数据的速度提高了约 4 倍。
“Glidesort 是一种新颖的稳定排序算法,是一种基于比较的排序,支持任意比较运算符,虽然在具有模式的数据上表现出色,但对于随机数据也非常快。
详细算法介绍见 glidesort 库的 README。
P.S glidesort和ipn_stable的性能分析[35]参考。
scaphandre[36] 用于测量 IT 服务器和计算机的能耗:Windows 兼容性(实验性)、多传感器支持,以及更多。目前发布 0.5 版本。
scaphanre 计算每个进程的功耗的原理概述:
“jiffies,Linux 中的处理时间以 Jiffies 为单位进行测量,单位是“HZ”,jiffies的值可以通过系统调用获取。 RAPL 传感器代表运行平均功率限制。这是嵌入在 2012 年之后生产的大多数 Intel 和 AMD x86 CPU 中的技术。
icu4x[38] 是Unicode (ICU) 的国际化组件[39]的实现,旨在实现模块化、高性能和灵活。该库为所有软件提供了一层 API,以启用国际化功能。
该库由 Unicode 联盟(字符编码和国际化的标准机构)中 ICU-TC 的一个小组委员会开发。
darkbird[40] 是 Rust 实现的高并发、实时、内存数据库,其灵感来自于 Erlang 生态中的mnesia 数据库。目前发布 6.0 版本。
async-rdma[41] 是一个用于编写具有高级抽象和异步 API 的 RDMA 应用程序的框架。新的版本中添加了一些 API,使用户能够控制设备、连接和 async-rdma 后台框架的更多属性。
masonry-rs[42] 是一个旨在为 Rust GUI 库提供基础的框架。masonry 提供了一个平台来创建窗口(使用Glazier[43]作为后端),每个窗口都有一个小部件(widgets)树。开发者可以在 Masonry 之上实现即时模式 GUI、Elm 架构、功能性反应式 GUI 等。该项目最初是 Druid 的一个分支,现在独立开发了。
值得一说的是,Masonry 作者认为 Rust 终有一天会彻底改变原生 GUI 的生态,Masonry 就是朝着这个目标迈出的一步。
更多内容可以参考masonry-rs官方介绍[44]。
glow[45] 提供了一组 Rust 绑定,让开发者可在任何地方运行 GL(Open GL、OpenGL ES 和 WebGL)。
[1]
FOSDEM 2023: https://fosdem.org/2023/
[2]
video: https://fosdem.org/2023/schedule/event/building_an_actor_library_for_quickwits_indexing_pipeline/
[3]
Quickwit: https://github.com/quickwit-oss/quickwit
[4]
video: https://fosdem.org/2023/schedule/event/rust_building_a_distributed_search_engine_with_tantivy/
[5]
lnx: https://github.com/lnx-search/lnx
[6]
video: https://fosdem.org/2023/schedule/event/rust_aurae_a_new_pid_1_for_distributed_systems/
[7]
video: https://fosdem.org/2023/schedule/event/rust_bastionlab/
[8]
video: https://fosdem.org/2023/schedule/event/rust_neovim_and_rust_analyzer_are_best_friends/
[9]
video: https://fosdem.org/2023/schedule/event/rust_a_rusty_cheri_the_path_to_hardware_capabilities_in_rust/
[10]
video: https://fosdem.org/2023/schedule/event/rust_slint_are_we_gui_yet/
[11]
video: https://fosdem.org/2023/schedule/event/rust_rust_api_design_learnings/
[12]
video: https://fosdem.org/2023/schedule/event/rust_a_deep_dive_inside_the_rust_frontend_for_gcc/
[13]
video: https://fosdem.org/2023/schedule/event/rust_merging_process_of_the_rust_compiler/
[14]
video: https://fosdem.org/2023/schedule/event/rust_lets_write_snake_game/
[15]
video: https://fosdem.org/2023/schedule/event/rust_glidesort/
[16]
video: https://fosdem.org/2023/schedule/event/rust_how_pydantic_v2_leverages_rusts_superpowers/
[17]
video: https://fosdem.org/2023/schedule/event/rust_scalable_graph_algorithms_in_rust_and_python/
[18]
graph: https://github.com/s1ck/graph
[19]
video: https://fosdem.org/2023/schedule/event/rust_using_rust_for_your_network_management_tools/
[20]
nmstate: https://github.com/nmstate/nmstate
[21]
video: https://fosdem.org/2023/schedule/event/rust_backward_and_forward_compatibility_for_security_features/
[22]
video: https://fosdem.org/2023/schedule/event/rust_atuin_magical_shell_history_with_rust/
[23]
atuin: https://github.com/ellie/atuin
[24]
video: https://fosdem.org/2023/schedule/event/rustunikernel/
[25]
video: https://www.youtube.com/watch?v=90Q5N1qT7BQ
[26]
用 Rust 重新实现 coreutils: https://github.com/uutils/coreutils/
[27]
Rust 社区针对Cpp之父这一言论作出了回应: https://www.reddit.com/r/rust/comments/10rnymj/my_reaction_to_dr_stroustrups_recent_memory/
[28]
cargo-semver-checks: https://crates.io/crates/cargo-semver-checks
[29]
Trustfall: https://github.com/obi1kenobi/trustfall
[30]
Trustfall 进行了优化: https://predr.ag/blog/speeding-up-rust-semver-checking-by-over-2000x/
[31]
Prossimo 最近发布的文章《改进 Rust 编译时间以启用内存安全》: https://www.memorysafety.org/blog/remy-rakic-compile-times/
[32]
Prossimo: https://www.memorysafety.org/about/
[33]
cargo-dist: https://blog.axo.dev/2023/02/cargo-dist
[34]
glidesort: https://github.com/orlp/glidesort
[35]
glidesort和ipn_stable的性能分析: https://github.com/Voultapher/sort-research-rs/blob/main/writeup/glidesort_perf_analysis/text.md
[36]
scaphandre: https://github.com/hubblo-org/scaphandre
[37]
jiffies: https://www.anshulpatel.in/posts/linux_cpu_percentage/
[38]
icu4x: https://github.com/unicode-org/icu4x
[39]
Unicode (ICU) 的国际化组件: http://site.icu-project.org/
[40]
darkbird: https://github.com/Rustixir/darkbird
[41]
async-rdma: https://github.com/datenlord/async-rdma
[42]
masonry-rs: https://github.com/PoignardAzur/masonry-rs
[43]
Glazier: https://github.com/linebender/glazier
[44]
masonry-rs官方介绍: https://poignardazur.github.io/2023/02/02/masonry-01-and-my-vision-for-rust-ui/
[45]
glow: https://github.com/grovesNL/glow
[46]
future 的大小: https://swatinem.de/blog/future-size/
[47]
Bevy 实现微信跳一跳游戏: https://github.com/NightsWatchGames/jump-jump
[48]
WIP:关于解释 Rust 生命周期的一本书: https://danielhenrymantilla.github.io/lifetimes.rs/variance-rules.html
[49]
cargo-dist issues#74 关于交叉编译的一些讨论与资源: https://github.com/axodotdev/cargo-dist/issues/74
[50]
Rust 面向对象特性研究系列文章: https://www.thecodedmessage.com/posts/oop-1-encapsulation/
[51]
Rust 声明宏介绍: https://www.priver.dev/blog/rust/macros-in-rust/
[52]
derive-adhoc:强大的基于模式的 Rust 派生宏: https://diziet.dreamwidth.org/14345.html