https://github.com/danny-yamamoto/rust-worker
Rust WebAssembly guide
https://github.com/danny-yamamoto/rust-worker
cloudflare-workers rust wasm
Last synced: 2 months ago
JSON representation
Rust WebAssembly guide
- Host: GitHub
- URL: https://github.com/danny-yamamoto/rust-worker
- Owner: danny-yamamoto
- Created: 2023-10-25T04:45:08.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-30T06:33:24.000Z (over 1 year ago)
- Last Synced: 2025-02-02T18:21:10.275Z (4 months ago)
- Topics: cloudflare-workers, rust, wasm
- Language: Rust
- Homepage:
- Size: 35.2 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Template: worker-rust
[](https://deploy.workers.cloudflare.com/?url=https://github.com/cloudflare/templates/tree/main/worker-rust)
A template for kick starting a Cloudflare worker project using [`workers-rs`](https://github.com/cloudflare/workers-rs).
This template is designed for compiling Rust to WebAssembly and publishing the resulting worker to Cloudflare's [edge infrastructure](https://www.cloudflare.com/network/).
## Setup
To create a `my-project` directory using this template, run:
```sh
$ npx wrangler generate my-project https://github.com/cloudflare/workers-sdk/templates/experimental/worker-rust
# or
$ yarn wrangler generate my-project https://github.com/cloudflare/workers-sdk/templates/experimental/worker-rust
# or
$ pnpm wrangler generate my-project https://github.com/cloudflare/workers-sdk/templates/experimental/worker-rust
```## Wrangler
Wrangler is used to develop, deploy, and configure your Worker via CLI.
Further documentation for Wrangler can be found [here](https://developers.cloudflare.com/workers/tooling/wrangler).
## Usage
This template starts you off with a `src/lib.rs` file, acting as an entrypoint for requests hitting your Worker. Feel free to add more code in this file, or create Rust modules anywhere else for this project to use.
With `wrangler`, you can build, test, and deploy your Worker with the following commands:
```sh
# run your Worker in an ideal development workflow (with a local server, file watcher & more)
$ npx wrangler dev --local --persist# deploy your Worker globally to the Cloudflare network (update your wrangler.toml file for configuration)
$ npx wrangler deploy
```Read the latest `worker` crate documentation here: https://docs.rs/worker
## WebAssembly
`workers-rs` (the Rust SDK for Cloudflare Workers used in this template) is meant to be executed as compiled WebAssembly, and as such so **must** all the code you write and depend upon. All crates and modules used in Rust-based Workers projects have to compile to the `wasm32-unknown-unknown` triple.
Read more about this on the [`workers-rs`](https://github.com/cloudflare/workers-rs) project README.
## Issues
If you have any problems with the `worker` crate, please open an issue on the upstream project issue tracker on the [`workers-rs` repository](https://github.com/cloudflare/workers-rs).
## D1
### Create data
```bash
wrangler d1 execute test-db \
--local --command "CREATE TABLE IF NOT EXISTS users ( user_id INTEGER PRIMARY KEY, email_address TEXT, created_at INTEGER, deleted INTEGER, settings TEXT);"npx wrangler d1 execute test-db \
--local --command "INSERT INTO users (user_id, email_address, created_at, deleted, settings) VALUES (1, '[email protected]', 0, 0, '');"
npx wrangler d1 execute test-db \
--local --command "INSERT INTO users (user_id, email_address, created_at, deleted, settings) VALUES (999, '[email protected]', 0, 0, '');"npx wrangler d1 execute test-db \
--local --command "select * from users;"
```