Earlier quoted context omitted.
The "is key - ", is a key giveaway. EDIT to expand the evidence: It's placing unnecessary emphasis on a one off mention in the article (differential fuzzing) and then writes a bunch of bullshit around what it thinks it means (it's wrong, differential fuzzing isn't running them both in parallel during a transition, it's a testing methodology based on inputs/outputs).
I think it's a giveaway that it's human! A hyphen is incorrect punctuation.
Rust at Scale: An Added Layer of Security for WhatsApp
41–50 of 151 posts
Re: Rust at Scale: An Added Layer of Security for WhatsApp
#42The 160k → 90k LOC reduction is nice, but the parallel rollout is the more interesting part. Running Rust alongside the C++ version and using differential fuzzing to check equivalence is a lot more realistic than “rewrite and pray.” You get incremental validation with the old system as a fallback. Curious how long they ran both before cutting over. Binary size is a real concern on the client side. On servers the Rust…
Re: Rust at Scale: An Added Layer of Security for WhatsApp
#43Earlier quoted context omitted.
Probably yes. It's ~300KB per binary, and it's a one-time cost. It can be avoided entirely by disabling the standard library, but that's inconvenient, and usually done only when writing for embedded devices. Usually the problem isn't the size directly, but duplication of Rust dependencies in mixed C++/Rust codebases. If you end up with a sandwich of build systems (when you have library dependencies like C++ => Rust =…
The size is not fixed. It changes based on how much of the standard library you use. Dynamically linking the standard library is also a valid option in many cases.
Re: Rust at Scale: An Added Layer of Security for WhatsApp
#44Re: Rust at Scale: An Added Layer of Security for WhatsApp
#45Wasn't there news lately that they can still read your messages somehow?
Re: Rust at Scale: An Added Layer of Security for WhatsApp
#46> "WhatsApp provides default end-to-end encryption for over 3 billion people". Wasn't there news lately that they can still read your messages somehow?
Do you trust facebook (excuse me, meta) to not snoop on your messages, and to not share them with the "intelligence" agencies ?
Re: Rust at Scale: An Added Layer of Security for WhatsApp
#47The 160k → 90k LOC reduction is nice, but the parallel rollout is the more interesting part. Running Rust alongside the C++ version and using differential fuzzing to check equivalence is a lot more realistic than “rewrite and pray.” You get incremental validation with the old system as a fallback. Curious how long they ran both before cutting over. Binary size is a real concern on the client side. On servers the Rust…
Did they say anywhere what they did? Rebuilding the stdlib as part of your build can shrink it a lot depending on how much of it you use, but that is still nightly only. Maybe they went no_std or created their own?
Also note that if you statically link to the rust std library, lto will excise the majority of it anyways, no need to rebuild it.
Re: Rust at Scale: An Added Layer of Security for WhatsApp
#48> "WhatsApp provides default end-to-end encryption for over 3 billion people". Wasn't there news lately that they can still read your messages somehow?
Every encryption is end to end if you're not picky about the ends, or metadata. Do you trust facebook (excuse me, meta) to not snoop on your messages, and to not share them with the "intelligence" agencies ?
Re: Rust at Scale: An Added Layer of Security for WhatsApp
#49Let's see how this unwrap()s in production scnr
Re: Rust at Scale: An Added Layer of Security for WhatsApp
#50Quite impressive, I did not know so many bugs were due to memory access.
To be fair the increased reliability of Rust code over C++ isn't just because of memory errors (out-of-bounds accesses, use-after-free, type confusion, etc). You also get: * No undefined behaviour (outside `unsafe`, which is quite easy to avoid). In C++ there are many many sources of UB that aren't really memory errors directly, e.g. signed integer overflow or forgetting to `return` from a function. * A much stronger…