Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 21 additions & 6 deletions playground/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,26 @@ In-browser playground for Ruff. Available [https://play.ruff.rs/](https://play.r

## Getting started

- To build the WASM module, run `npm run build:wasm`
from the `./playground` directory.
- Install TypeScript dependencies with: `npm install`.
- Start the development server with: `npm run dev`.
First, build the WASM module by running `npm run build:wasm` from the `./playground` directory.

## Implementation
Then, install TypeScript dependencies with `npm install`, and run the development server with
`npm run dev`.

Design based on [Tailwind Play](https://play.tailwindcss.com/). Themed with [`ayu`](https://github.com/dempfi/ayu).
To run the datastore, which is based on [Workers KV](https://developers.cloudflare.com/workers/runtime-apis/kv/),
install the [Wrangler CLI](https://developers.cloudflare.com/workers/wrangler/install-and-update/),
then run `npx wrangler dev --local` from the `./playground/db` directory. Note that the datastore is
only required to generate shareable URLs for code snippets. The development datastore does not
require Cloudflare authentication or login, but in turn only persists data locally.

## Architecture

The playground is implemented as a single-page React application powered by
[Vite](https://vitejs.dev/), with the editor experience itself powered by
[Monaco](https://github.com/microsoft/monaco-editor).

The playground stores state in `localStorage`, but can supports persisting code snippets to
a persistent datastore based on [Workers KV](https://developers.cloudflare.com/workers/runtime-apis/kv/)
and exposed via a [Cloudflare Worker](https://developers.cloudflare.com/workers/learning/how-workers-works/).

The playground design is originally based on [Tailwind Play](https://play.tailwindcss.com/), with
additional inspiration from the [Rome Tools Playground](https://docs.rome.tools/playground/).
2 changes: 2 additions & 0 deletions playground/api/.dev.vars
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# See: https://developers.cloudflare.com/workers/wrangler/configuration/#environmental-variables
DEV=1
5 changes: 5 additions & 0 deletions playground/api/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# api

Key-value store based on [Workers KV](https://developers.cloudflare.com/workers/runtime-apis/kv/).

Used to persist code snippets in the playground and generate shareable URLs.
Loading