Articles tagged “rust”
-
Fuzzing rust-minidump for Embarrassment and Crashes – Part 2
For the last year, we've been working on the development of rust-minidump, a pure-Rust replacement for the minidump-processing half of google-breakpad. The final part in this series takes you through fuzzing rust-minidump.
-
Everything Is Broken: Shipping rust-minidump at Mozilla – Part 1
For the last year, we've been working on the development of rust-minidump, a pure-Rust replacement for the minidump-processing half of google-breakpad. The first in this two-part series explains what minidumps are, and how we made rust-minidump.
-
Porting Firefox to Apple Silicon
The release of Apple Silicon-based Macs at the end of last year generated a flurry of news coverage and some surprises at the machine’s performance. This post details some background information on the experience of porting Firefox to run natively on these CPUs.
-
A New Backend for Cranelift, Part 1: Instruction Selection
This post will describe my recent work on Cranelift as part of my day job at Mozilla. In this post, I will set some context and describe the instruction selection problem. In particular, I’ll talk about a revamp to the instruction selector and backend framework in general that we’ve been working on.
-
A Taste of WebGPU in Firefox
We are excited to bring WebGPU support to Firefox because it will allow richer and more complex graphics applications to run portably on the web. WebGPU is an emerging API, designed from the ground up within the W3C, to provide access to the graphics and computing capabilities of hardware on the web.
-
Multi-Value All The Wasm!
Multi-value is a proposed extension to core WebAssembly that enables functions to return many values, among other things. It is also a prerequisite for Wasm interface types. Nick Fitzgerald has been adding multi-value support all over the place recently, started with the Rust and WebAssembly toolchain. Next he added support to the Wasmtime runtime, and the Cranelift code generator it’s built on top of. Here's his account of the journey.
-
Fearless Security: Memory Safety
Memory safety violations leave programs vulnerable to security threats like unintentional data leakage and remote code execution. There are ways to ensure memory safety, including smart pointers and garbage collection. Research engineer Diane Hosfelt explains how Rust’s ownership system achieves memory safety while minimizing performance costs.
-
Converting a WebGL application to WebVR
Research engineer Manish Goregaokar, who works on Servo and Rust, shares what he's learned and some of the code he wrote, while porting a WebGL application to WebVR.
-
The Arch: Using Rust & WebAssembly to animate 30k colored LED lights
In June, Mozilla collaborated with artist Ian Brill to create an installation called the “Arch” at JSConf EU in Berlin. This interactive environment allowed people to experience the intersection of art and technology in a physical, pulsating, immersive way. The environment also created an opportunity for JavaScripters and friends to create animations and experience the underlying capabilities of WebAssembly and Rust.
-
JavaScript to Rust and Back Again: A wasm-bindgen Tale
Recently we’ve seen how WebAssembly is incredibly fast to compile, speeding up JS libraries, and generating even smaller binaries. We’ve even got a high-level plan for better interoperability between the Rust and JavaScript communities, as well as other web programming languages. The goal of wasm-bindgen is to provide a bridge between the types of JavaScript and Rust. It allows JS to call a Rust API with a string, or a Rust function to catch a JS exception. wasm-bindgen erases the impedance mismatch between WebAssembly and JavaScript, ensuring that JavaScript can invoke WebAssembly functions efficiently and without boilerplate, and that WebAssembly can do the same with JavaScript functions.