finds.dev← search

// the find

cloudflare/workers-rs

★ 3,533 · Rust · Apache-2.0 · updated Jun 2026

Write Cloudflare Workers in 100% Rust via WebAssembly

Official Cloudflare crate for writing Workers in Rust, compiled to WebAssembly via wasm-bindgen. If you want type-safe, memory-safe serverless functions on Cloudflare's edge network without touching JavaScript, this is the path. It's maintained by Cloudflare itself, so it tracks the Workers runtime fairly closely.

The `http` feature flag that bridges to standard `http`/`http_body` types is the right call — it means you can drop in axum directly instead of learning a bespoke router. Durable Objects with SQLite storage are fully exposed, including the SQL iterator, which is rare to see covered this completely in a Wasm binding crate. The `--panic-unwind` build flag with automatic instance reinitialization after hard aborts is genuinely useful operational work, not just a checkbox. The test suite runs against a real Miniflare instance with TypeScript specs rather than mocking the runtime, which means the bindings actually get exercised end-to-end.

No Tokio means no async ecosystem: anything that pulls in tokio as a hard dependency is dead on arrival, and that rules out most of the Rust HTTP client and database driver ecosystem — you're writing wasm32-unknown-unknown compatible code only, which is a significant constraint that bites harder the more complex your worker gets. RPC support is explicitly pre-alpha with primitive types only and requires hand-writing wasm-bindgen FFI, so service-to-service RPC in Rust is painful enough that you might as well stay in JS for that layer. Bundle size hits Workers' limits quickly when you pull in any non-trivial crates, and the guidance on fixing it is essentially 'minimize your dependencies' — there's no built-in tree-shaking strategy or size profiling tooling. Testing end-to-end requires Node and Miniflare, so your Rust project necessarily has a Node dev dependency and JavaScript test files, which is friction that won't bother everyone but will bother the people who came to this crate specifically to avoid JavaScript.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →