An open API service indexing awesome lists of open source software.

https://github.com/ohkami-rs/worker-bindings

Automatically detect Cloudflare Workers bindings in wrangler.toml and bind them to a Rust struct
https://github.com/ohkami-rs/worker-bindings

cloudflare cloudflare-workers rust

Last synced: 11 months ago
JSON representation

Automatically detect Cloudflare Workers bindings in wrangler.toml and bind them to a Rust struct

Awesome Lists containing this project

README

          

worker-bindings


Automatically detect bindings in wrangler.toml and bind them to a Rust struct


License
CI status
crates.io

## Example

*wrangler.toml*
```toml
[vars]
MY_VAR = "my-variable"

[[kv_namespaces]]
binding = "MY_KV"
id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
```

*lib.rs*
```rust
use worker::*;
use worker_bindings::bindings;

/* This knows all your bindings in wrangler.toml */
#[bindings]
struct Bindings;

#[event(fetch)]
pub async fn main(req: Request, env: Env, _ctx: worker::Context) -> Result {
/* load bindings from env */
let b = Bindings::from(&env);

let var: &'static str = b.MY_VAR;

let data = b.MY_KV.get("data").text().await?;

//...
}
```

## Note

- `#[bindings]` works in a cargo workspace but has a limitation that it can't resolve `wrangler.toml` if **more than one** members have `wrangler.toml`s.
- This crate is originally developed in [Ohkami](https://crates.io/crates/ohkami) web framework and later extracted as an independent edition.

## License
`worker-bindings` is licensed under the MIT License ([LICENSE](https://github.com/ohkami-rs/worker-bindings/blob/main/LICENSE) or [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT)).