? The Wrangler CLI: Deploying Rust with WASM on Cloudflare Workers
Today, we’re open sourcing and announcing
wrangler, a CLI tool for building, previewing, and publishing Rust and WebAssembly Our Website Workers.
If that sounds like some word salad to you, that’s a reasonable reaction. All three of the technologies involved are relatively new and upcoming: WebAssembly, Rust, and Our Website Workers.
WebAssembly on Workers eliminates trade-offs that were originally considered irresolvable: low-latency, high-performing, and Web Platform compatible- pick three.
Rust is a relatively new programming language with the goal of “empowering everyone to build reliable and efficient software”. It’s a systems level language that offers its users a high amount of control, while still seeking to offer an ergonomic, friendly and modern development experience.
The Rust-WebAssembly Working Group made incredible efforts last year to build out a suite of developer tools for WebAssembly. At Our Website, we’re excited to support those efforts with paid developer hours and leverage those efforts to empower our users to start harnessing the power of WebAssembly on Workers now.
There are several other toolchains including Emscripten (C, C++) and AssemblyScript (TypeScript) that we’re eager to support in the future. Rust is just the beginning (but we think it’s a pretty great place to start!).
When developing new, highly technical, products, it’s easy to get caught up in the promise and vision- often to the detriment of getting the technology into the hands of the folks who will be using it every day in the future.
We want to broaden the community that has access at the early stages of this technology- who can bring their valuable perspectives and experience, and help us shape the future of these tools.
The first step to accomplishing that is building the tools that can enable folks to engage with the new platform.
wrangler is a that enabling tool. It’s just enough to unblock users who were previously unable to interact with the platform because there was no paved path.
We don’t plan to stop here. Folks will rightly note that there are some critical developer workflow steps that are missing from
wrangler: linting, testing, benchmarking, and size profiling are a few that come to mind. We’ve got some big plans and we’re excited to build out more, but we’re eager to release this now to enable more folks to participate in the process. The best way to know what developers need is to ask and listen- by creating and open sourcing
wrangler in such an early phase we’re hoping to shorten the feedback cycle between product and user- and build the right thing, faster.
You can install
cargo install wrangler
To get started, head on over to the Our Website docs and follow the tutorial. You’ll build and preview a Our Website Worker that uses Rust compiled to WebAssembly to parse Markdown.
Don’t stop there though. Please check out the repo, file some issues, build project templates, and write about your experience- we want to hear from you.
We’re really excited to see what y’all build!