Rust and WebAssembly
Rust
Rust is a stack-based system program language with C-like syntax. What makes Rust significantly different from C or C++ is that firstly, it is strongly typed, and secondly, the compiler enforces very strict rules about memory management.
Consequently, many of the existing headaches concerning memory management experienced in C simply disappear when writing in Rust. However, in order to take advantage of this extra runtime safety, you must first invest the time and effort to learn and become comfortable with some initially strange, Rust-specific concepts such as value ownership and lifetimes.
The performance of idiomatic Rust is comparable to the performance of idiomatic C++.
If you wish to learn Rust (which I highly recommend), there is an excellent set of tutorials on the Rust Language website
WebAssembly
WebAssembly is a portable binary format for executable code.
The original idea was to improve JavaScript performance by sending precompiled JavaScript code to a browser. As the implementation proceeded however, it became clear that it would be possible to create a far more general purpose solution than one simply targeted at browsers.
One very important point about WebAssembly is that every major browser vendor has agreed on the format, and thus we have portable binary format that really does run everwhere without the need for a heavy-weight virtual machine to act as its runtime environment (yes, I'm looking at you Java...)
It should be remembered however, that the name "WebAssembly" is something of a joke because it is neither specifically related to the Web, nor is it an Assembly language!
It is also important to understand that since it is a binary format, you do not write directly in WebAssembly. Instead, you write in some other language such as Rust or C++, then compile that program into Web Assembly. Thus, WebAssembly is a compilation target, not a source language; however, having said that, a text representation known as WebAssembly Text is available, but even then, it is very unlikely that you would write your program directly in this text format.
The number of languages that can be compiled to WebAssembly is growing rapidly. A list of such languages maintained here