展开讨论

经验与复盘经验摘录 · 机器翻译

哦,如果这在实践中有效就好了

哦,如果这在实践中有效就好了。Rust crate 中有太多 "unsafe" 的使用了。有时候,确实有很好的理由。但很多时候,是因为有人无法找到一种安全的方式来实现。我在这个主题上在 Reddit 上发了一个帖子:"我们还没有准备好"。[1] 有人在那条评论中说:"这里有些人会自愿帮助你,挖掘内部并解决这些问题,只要你提供足够的信息。" 我的回复是:我已经这样做了三次: * jpeg2000-decoder -- JPEG 2000 解码器测试用例。这会测试 jpeg2k->jpeg2000-sys->OpenJPEG。前两个是用 Rust 编写的,最后一个用的是 C 语言,而 valgrind 显示它引用了未初始化的内存。它会随机崩溃。OpenJPEG 有很长一段时间一直存在这个问题,并且已经被几个 CERT 安全公告所关注。jpeg2k 的作者设法通过在 WASM 沙箱中运行 OpenJPEG 来解决这个问题。这可以防止程序崩溃,但会带来 2.6 倍的性能损失。…

源讨论Rust 中的安全性和稳定性原帖 90 条评论 · 导入时统计
5

社区评论 0

还没有社区评论,来聊聊你的看法。

原讨论中的回复 5

仅展示本次导入中包含的直接回复。中文为机器翻译,可查看英文原文。

YG

> 这就是为什么没有人成功地用 Rust 开发一款大型游戏。Rust 的基础太薄弱,无法支持它。 这明显是错误的。https://veloren.net/ 人们已经用 Rust 开发了游戏。还有用 Zig、C、C++ 和其他语言,甚至汇编语言和机器码。不安全不是问题,而是缺乏库和集成。 如果你指的是 AAA 级游戏,问题在于缺乏 Rust 必须使用的引擎。也就是说,网络效应,你需要 Rust 的引擎才能用 Rust 开发游戏。而要开发 Rust 的引擎,需要更多的游戏要求 Rust。

完整原文
OL

> 这就是为什么没有人成功地用 Rust 开发一款大型游戏。Rust 的基础太薄弱,无法支持它。 《The Finals》的公开测试版将在 6 日开始。去看看 https://www.reachthefinals.com/ 这是他们使用 Rust 的一篇博客文章:https://medium.com/embarkstudios/inside-rust-at-embark-b82c0...

完整原文
NI

我可能误解了你写的内容,但你为什么不能使用https://github.com/etemesi254/zune-image作为JPEG解码器呢?它对不安全代码的使用很少,并且性能很好。

完整原文
VV

我不想轻视任何事情,但我在游戏开发中大部分时间都在处理类似的问题,要么是引擎升级整合的麻烦(我所在的团队仍然因为需要每三个月一次地将UE3重新基准化而留下伤痕,每次都要花三个月时间,所以每次升级都是连续不断的)要么是在处理这类问题,即使是在成熟的引擎中。 是的,Unity做得更好,但有大量已经投入了数千万美元的商业引擎,它们有巨大的惯性。直到最近,Godot才开始在独立游戏引擎领域有所突破。

完整原文
DJ

你的故事指出了OP观点的不幸的附带结果。他指出,如果有不安全的代码被调用,那永远不是调用者的责任。相反,这意味着调用者无法做任何事情,只能等待上游修复。

完整原文
在 Hacker News 阅读

尊重不同观点,分享具体经验。

登录后即可发帖、评论、转发和引用。