# Cloudflare Worker KV Proxy [![Crates.io][crates-badge]][crates-url] [![MIT/Apache-2 licensed][license-badge]][license-url] [![Build Status][actions-badge]][actions-url] This project is implemented to use Cloudflare KV in non-worker environment. ## Setup KV and Proxy 1. Copy whole content of `worker/kv_proxy.js` to create a new Cloudflare Worker using your browser, and click `Save and Deploy`. 2. Create a new KV namespace. 3. Go to your worker(the worker you just created) settings, and: 1. Add KV binding. 2. Add environment variable `KEY`, the value will be your access token(please make it long enough). ## Usage ```rust #[derive(Serialize, Deserialize, Debug)] struct Demo { name: String, age: u8, } let data = Demo { name: "red".to_string(), age: 21, }; let client = Client::new("https://your-proxy.workers.dev", "YOUR-TOKEN").unwrap(); println!("Put string: {:?}", client.put("test_key", "balabala").await); println!("Get string: {:?}", client.get::("test_key").await); println!("Put struct: {:?}", client.put("test_key2", &data).await); println!("Get struct: {:?}", client.get::("test_key2").await); ``` ## Cache To avoid unnecessary requests to Cloudflare, the proxy caches the response. By default the caching is enabled. You can set `default-features = false` in `Cargo.toml`. [crates-badge]: https://img.shields.io/crates/v/cloudflare-kv-proxy.svg [crates-url]: https://crates.io/crates/cloudflare-kv-proxy [license-badge]: https://img.shields.io/crates/l/cloudflare-kv-proxy.svg [license-url]: LICENSE-MIT [actions-badge]: https://github.com/ihciah/cloudflare-kv-proxy/actions/workflows/ci.yaml/badge.svg [actions-url]: https://github.com/ihciah/cloudflare-kv-proxy/actions