←back to thread

Pitfalls of Safe Rust

(corrode.dev)
168 points pjmlp | 1 comments | | HN request time: 0s | source
Show context
sgt ◴[] No.43603859[source]
Golang might be better for writing robust software, if that is the goal. Robust services that don't go down.
replies(7): >>43603900 #>>43603904 #>>43604076 #>>43604231 #>>43604239 #>>43605174 #>>43605256 #
IshKebab ◴[] No.43604239[source]
I don't think so. Rust has much stronger typing than Go which allows you to prevent more classes of bugs than just memory errors.

The coolest one I've heard is that Fuchsia's network stack managed to eliminate deadlocks.

But even on a basic level Rust has that "if it compiles it works" experience which Go definitely doesn't.

replies(1): >>43604273 #
Mond_ ◴[] No.43604273[source]
> The coolest one I've heard is that Fuchsia's network stack managed to eliminate deadlocks.

Is there a write up on this? That's very cool

replies(2): >>43604535 #>>43604580 #
1. aw1621107 ◴[] No.43604580[source]
I think that example comes from the talk "Safety in an Unsafe World" [0, slides at 1].

There are some crates which implement lock ordering as well (e.g., [2, 3]). lock-ordering states it's inspired by the technique discussed in the talk as well, for what it's worth.

[0]: https://youtu.be/qd3x5MCUrhw?t=1001 (~16:41 in case the timestamp link doesn't work)

[1]: https://joshlf.com/files/talks/Safety%20in%20an%20Unsafe%20W... (deadlock prevention example starting slide 50)

[2]: https://github.com/akonradi/lock-ordering

[3]: https://github.com/alaric/lock_order