AIUI, Servo has been a failure because Rust is not very good at this problem domain. Browsers have to deal with circular references and this is easily handled in C++.
Hopefully someone who knows more will explain this better
Hopefully someone who knows more will explain this better
It's (much) more involved than using C++, but that's a worthwhile tradeoff for something as important as a browser engine.
More info: https://eli.thegreenplace.net/2021/rust-data-structures-with...
good link you shared. i personally always went with option 2 he presents.
You can always go through and systematically remove unnecessary `unsafe` later if needed, but there's no need to do so upfront if that would prevent adoption.
refactoring those unsafe will never happen in the kind of place that put them in place to begin with.