我非常喜欢Golang,可以轻松地编写并发软件,以便在一台机器上使用更多的CPU内核 . 我有点担心得知Go并不是真正的分布式(如多节点并发)语言 - 甚至Rob Pike也承认(在GopherCon 2014上)它从一开始就不是为分布式计算而设计的,尽管有尝试帮助的GoCircuit等软件包 .

因此,我最近对Erlang和Elixir感兴趣,因为经过实战的Erlang VM已被用于跨节点分发应用程序数十年 .

但后来我了解到Rust从Erlang(消息传递,模式匹配)中获取大部分并发功能,同时仍然是静态类型和编译语言(因此可能更快),我想知道Rust是否可能是一个不错的选择(除此之外) Erlang / Elixir)用于编写分布式多节点软件?

以下是一些针对所寻求信息的具体问题:

  • Rust如何处理部分失败的稳健性(类似于Erlang的"let it crash"哲学,通过进程隔离)?

  • Rust是否在标准库或 生产环境 就绪包中提供易于使用的远程通道,消息传递或其他内容,以协助机器之间的通信?

  • 分布式软件可能需要Erlang / Exlixir的哪些功能,但在Rust中不可用?