Repolode
cloudflare

cloudflare/workerd

Серверный рантайм для JavaScript и Wasm на базе того же кода, что и Cloudflare Workers, — для самостоятельного хостинга и локальной разработки.

Звёзды
9,036
Форки
796
Открытые issues
813
Последний коммит
4 часа назад

Что это?

workerd — серверный рантайм для JavaScript и WebAssembly-кода, написанного для Cloudflare Workers. Его можно использовать как сервер приложений для самостоятельного хостинга приложений Workers, как инструмент локальной разработки и тестирования или как программируемый прямой либо обратный HTTP-прокси, который перехватывает, изменяет и маршрутизирует запросы.

Приложения разделяются на наносервисы, которые взаимодействуют друг с другом в одном потоке и процессе, а ресурсы связываются через capability bindings в конфигурационном файле Cap'n Proto, а не через глобальные пространства имён. Встроенные API соответствуют стандартам веб-платформы, например fetch(), а для каждой версии указывается дата совместимости, позволяющая эмулировать поведение старых API.

Проект написан на C++ и собирается с помощью Bazel; предварительно собранные бинарные файлы распространяются через npm. Он тестируется на Linux, macOS и Windows и работает с Wrangler через переменную окружения MINIFLARE_WORKERD_PATH. В проекте отмечают, что это не защищённая песочница, поэтому недоверенный код следует запускать в VM или в аналогичной изолированной среде.

Ключевые возможности

  • 01Запускает JavaScript- и Wasm-код, написанный для Cloudflare Workers.
  • 02Разделяет приложения на наносервисы, взаимодействующие друг с другом в одном процессе.
  • 03Настраивается с помощью файла Cap'n Proto и capability bindings.
  • 04Поддерживает даты совместимости для эмуляции прежнего поведения API.
  • 05Может работать как программируемый прямой или обратный HTTP-прокси.
  • 06Поддерживает наследование сокетов systemd через --socket-fd.

Сценарии использования

  • Самостоятельный хостинг приложений, изначально предназначенных для Cloudflare Workers.
  • Локальная разработка и тестирование кода Workers с Wrangler.
  • Создание программируемого HTTP-прокси для изменения запросов или их маршрутизации.

Быстрый старт

  1. 1

    Соберите бинарный файл workerd с помощью Bazel

    bazel build //src/workerd/server:workerd
  2. 2

    Создайте файл конфигурации (например, my-config.capnp), в котором указаны ваши сервисы и сокеты

  3. 3

    Запустите сервисы с этой конфигурацией с помощью workerd

    workerd serve my-config.capnp

Что важно знать

  • workerd не является усиленной песочницей, поэтому запускайте недоверенный код в виртуальной машине или другой защищённой песочнице.
  • Для сборки из исходного кода требуется большой набор инструментов: например, clang 22 или новее, libc++ 22 или новее и LLD 22 или новее в Linux либо Xcode 16.3 в macOS.
  • Официальное тестирование проводилось только на Linux, macOS и Windows для x86-64 и arm64.

Темы

Частые вопросы

Что такое workerd?
Серверный рантайм для JavaScript и Wasm на базе того же кода, что и Cloudflare Workers, — для самостоятельного хостинга и локальной разработки. workerd — серверный рантайм для JavaScript и WebAssembly-кода, написанного для Cloudflare Workers. Его можно использовать как сервер приложений для самостоятельного хостинга приложений Workers, как инструмент локальной разработки и тестирования или как программируемый прямой либо обратный HTTP-прокси, который перехватывает, изменяет и маршрутизирует запросы.
workerd можно использовать бесплатно? Какая у него лицензия?
workerd распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
workerd всё ещё поддерживается?
Активно поддерживается. Последний коммит в workerd — 21 окт. 2026 г..
Для чего можно использовать workerd?
Самостоятельный хостинг приложений, изначально предназначенных для Cloudflare Workers. Локальная разработка и тестирование кода Workers с Wrangler. Создание программируемого HTTP-прокси для изменения запросов или их маршрутизации.
Как установить workerd?
Соберите бинарный файл workerd с помощью Bazel: bazel build //src/workerd/server:workerd Создайте файл конфигурации (например, my-config.capnp), в котором указаны ваши сервисы и сокеты Запустите сервисы с этой конфигурацией с помощью workerd: workerd serve my-config.capnp
Где скачать workerd?
Исходный код и инструкции по установке — на GitHub: https://github.com/cloudflare/workerd

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Самостоятельно размещаемый почтовый сервис на Cloudflare Workers: создавайте несколько ящиков на одном домене, отправляйте письма и вложения через адаптивный веб-интерфейс.

14,8 тыс.22,6 тыс.JavaScriptMITОбновлён позавчера