Здесь правда исполняется
ваш код
Раннер настоящий: то, что вы напишете слева, запускается прямо в браузере. Ненастоящее — сеть, география и KV: они смоделированы, чтобы демо работало без сервера.
Что здесь настоящее, а что нарисовано
Ниже ровно то, что происходит при нажатии «Запустить».
Настоящее
Ваш код компилируется через new Function и исполняется движком браузера. Синтаксические ошибки, исключения, await, замыкания, возврат Response — всё живое. Время CPU замеряется через performance.now().
Смоделированное
fetch отвечает из встроенных моков с искусственной задержкой. env.KV и env.COUNTERS живут в памяти вкладки. request.geo берётся из выбранной точки, а сетевые миллисекунды — из её p50.
Ограничения песочницы
Таймаут 2000 мс на запуск, доступ к document и localStorage не блокируется — это браузер, а не изолят. Не вставляйте сюда чужой код, которому не доверяете.
| KV.get(k) | значение или null |
| KV.put(k, v, {ttl}) | запись с временем жизни в секундах |
| KV.list(prefix) | массив ключей |
| KV.delete(k) | удаление ключа |
| COUNTERS.incr(k, by) | атомарный инкремент, возвращает новое значение |
| REGION | идентификатор точки, например dme1 |
| API_TOKEN | демо-секрет, в логах маскируется |
| /echo | возвращает то, что отправили |
| /time | время сервера и номер точки |
| /geoip | гео по выбранной точке |
| /quote | случайная цитата, 180 мс |
| /rates | курсы валют, 240 мс |
| /slow | отвечает 900 мс — проверить таймаут |
| /fail | всегда 503 — проверить обработку ошибок |
↑ базовый адрес моков — https://api.tessera.dev, любой другой хост песочница отклоняет с понятной ошибкой
Понравилось — читайте, как это устроено
В документации те же примеры, но с разбором: роутинг, KV, cron, коды ошибок и полный список лимитов.