
Как Wasmer с помощью Codex создал Node.js-рантайм для edge
Как стартап Wasmer использовал OpenAI Codex и GPT-5.5, чтобы за несколько недель создать Edge.js — безопасный Node.js-рантайм на базе WebAssembly.
Как Wasmer с помощью Codex создал Node.js-рантайм для edge
Что если за несколько недель — силами небольшой команды — создать инструмент, на разработку которого в обычных условиях ушло бы год-два? Именно это удалось компании Wasmer: используя OpenAI Codex (агент для написания кода) и модель GPT-5.5, они выпустили Edge.js — открытый JavaScript-рантайм (среда выполнения) для безопасного запуска Node.js-приложений внутри WebAssembly-песочницы.
Проблема: Node.js и контейнеры не дружат с edge
Node.js — отличная платформа: она работает на миллионах серверов, быстра и невероятно надёжна. Но у неё есть принципиальные ограничения, которые делают её неудобной для edge-сред.
Node.js жёстко привязан к конкретному JavaScript-движку (V8 — тому же, что стоит за Google Chrome, Brave и Edge), и в отличие от него не может безопасно выполнять рабочие нагрузки без контейнеризации или аппаратной виртуализации.
Для Wasmer, строящего собственную хостинговую платформу, это было критично: привязывать Node.js-нагрузки к медленно стартующим контейнерам было неприемлемо — это уничтожило бы требования к быстрому запуску и высокой плотности серверов.
Другие игроки — такие как Deno или Bun — тоже осознали эту проблему и разработали собственные JavaScript-рантаймы, однако, по заявлению Wasmer, Edge.js стал первым полностью изолированным вариантом без Docker-контейнеров.
Решение: Edge.js — Node.js внутри WebAssembly-песочницы
Wasmer представил Edge.js как JavaScript-рантайм, использующий WebAssembly и предназначенный для безопасного выполнения Node.js-нагрузок в сферах AI и edge-вычислений.
Ключевой принцип Edge.js прост и элегантен:
Вместо того чтобы вводить новые API, Edge.js сохраняет полную совместимость с Node.js и изолирует небезопасные части выполнения с помощью WebAssembly.
Архитектура реализована путём разделения песочницы на два изолированных слоя: JS-движок — доступный через кастомные NAPI-API (JavaScript уже изолирован по умолчанию, дополнительного ужесточения не требуется), и системные вызовы и нативный код — изолированные через WASIX (чтение файлов, создание потоков, сетевые операции).
WASIX: расширенный WASI для реального мира
WASIX (WebAssembly System Interface eXtended — расширенный системный интерфейс WebAssembly) — это ключевой компонент всей архитектуры.
Существующие Node.js-приложения и нативные модули могут работать без изменений, пока системные вызовы и нативные модули изолированы через WASIX — расширение к WebAssembly System Interface (WASI), разработанное для совместимости Wasm-приложений с POSIX-программами и обеспечивающее корректное выполнение сложных приложений как на серверах, так и в браузерах.
Edge.js использует Node API (ранее N-API) как слой абстракции — API для создания нативных расширений, абстрагирующий V8-движок. Это позволяет использовать в Edge.js альтернативные JS-движки: JavaScriptCore и QuickJS.
Архитектура Edge.js
graph TD
A[Ваше Node.js-приложение] --> B[Edge.js Runtime]
B --> C[JS-движок: JavaScriptCore / QuickJS]
B --> D[NAPI — слой абстракции]
D --> E{Тип операции}
E -->|Безопасный JS-код| F[Выполняется нативно]
E -->|Системные вызовы, сеть, файлы| G[WASIX-песочница]
G --> H[Wasmer Runtime]
H --> I[Edge / Serverless-среда]
Роль OpenAI Codex: ускорение в 10–20 раз
Здесь начинается самое интересное. Edge.js — не просто технологическое достижение. Это демонстрация того, что AI-агенты меняют саму экономику разработки ПО.
Огромный объём работ удалось сократить благодаря ИИ. При реализации Edge.js команда опиралась главным образом на GPT-5.4. Без него этот проект был бы нереализуем для стартапа такого масштаба: его разработка заняла бы минимум год или два вместо нескольких недель.
Использование Codex совместно с GPT-5.5 ускорило разработку в 10–20 раз, позволив выпустить продукт за недели вместо месяцев.
Один из самых показательных эффектов — демократизация глубоко технической работы:
Даже разработчики из команды без экспертизы в C++ или внутреннем устройстве Node.js смогли участвовать в исправлении багов — благодаря Codex.
«Без OpenAI, их замечательного приложения Codex и нашего любимого WebAssembly — Edge.js просто не было бы.»
— Команда Wasmer
Что такое OpenAI Codex и GPT-5.5?
OpenAI Codex — это агентная среда (agentic environment) для написания кода, в которой модель может автономно выполнять многошаговые задачи: писать, тестировать, отлаживать и рефакторить программы.
Для большинства задач в Codex рекомендуется начинать с GPT-5.5 — он наиболее силён в решении сложных задач программирования, computer use (управления компьютером), работы со знаниями и исследовательских рабочих процессов.
GPT-5.4 объединил лучшее из последних достижений в области рассуждений, программирования и агентных рабочих процессов в единую модель. GPT-5.5 продолжает эту линейку, ещё сильнее ориентируясь на профессиональные задачи.
Производительность: цифры честно
Wasmer открыто говорит о текущих ограничениях Edge.js.
| Режим выполнения | Скорость относительно Node.js | Примечание |
|---|---|---|
| Нативный (без песочницы) | ~80–95% | Незначительное отставание |
С флагом --safe (WASIX-песочница) | ~70% | Полная изоляция |
| Время холодного старта | Медленнее Node.js | Нет JS-снапшотинга пока |
Edge.js в нативном режиме примерно на 5–20% медленнее Node.js, и на 30% при полной изоляции через Wasmer. В некоторых сценариях (например, HTTP-бенчмарки) разрыв может быть больше, хотя команда сосредоточена на его сокращении к Edge.js 1.0.
Из-за отсутствия JS-снапшотинга время запуска пока хуже, чем у оригинального Node.js, хотя у команды уже есть план решения этой проблемы. В первых релизах серии 0.x был сознательно выбран приоритет корректности над скоростью.
Что можно запускать в Edge.js?
Edge.js достигает впечатляющей совместимости с Node.js v24, проходя 3 592 из 3 626 тестов официального тест-сьюта Node.js.
На практике это означает: теперь можно запускать JS-приложения, MCP-серверы и агентов в безопасной песочнице — без Docker!
Примеры поддерживаемых стеков:
# Запуск Next.js-приложения в Edge.js с изоляцией
edge-js --safe server.js
# Или без изоляции для максимальной производительности
edge-js server.js
Сравнение подходов: Edge.js vs конкуренты
| Рантайм | Полная совместимость с Node.js | Изоляция без Docker | JS-движок | Edge-оптимизация |
|---|---|---|---|---|
| Edge.js (Wasmer) | ✅ Node.js v24 | ✅ WASIX | JavaScriptCore / QuickJS | ✅ |
| Deno | ⚠️ Частичная | ❌ | V8 | ✅ |
| Cloudflare Workers | ❌ WinterCG API | ❌ | V8 | ✅ |
| Bun | ✅ | ❌ | JavaScriptCore | ⚠️ |
| Node.js | ✅ | ❌ | V8 | ❌ |
Edge.js принципиально отличается от существующих JS edge-рантаймов вроде Deno или Cloudflare Workers: вместо введения новых API он сохраняет полную совместимость с Node.js и изолирует небезопасные части выполнения через WebAssembly.
Более широкий контекст: WebAssembly наступает
На граничных узлах, где ресурсы ограничены и задержка критична, WebAssembly блистает: он позволяет выполнять бизнес-логику близко к источнику данных — на IoT-устройствах или CDN-узлах — резко улучшая отзывчивость и снижая сетевой трафик к центральному облаку.
WebAssembly-движки, особенно ориентированные на высокую плотность мультитенантных нагрузок — такие как Wasmer — демонстрируют наименьшее потребление памяти в установившемся режиме, позволяя размещать значительно больше экземпляров на одном железе. Это особенно важно на edge, где ресурсы ограничены.
Итог: новая эра разработки ПО
История Edge.js — это не только про WebAssembly или Node.js. Это манифест новой модели разработки, в которой AI-агенты становятся полноценными участниками команды.
Маленький стартап взял сложнейшую техническую задачу — создание нового рантайма с нуля, с глубоким погружением в C++ и внутренности Node.js — и реализовал её за недели благодаря тому, что OpenAI Codex снял барьер экспертизы.
Добро пожаловать в золотой век программного обеспечения, где всё возможно!
Edge.js доступен на edgejs.org под открытой лицензией. Если вы разрабатываете serverless-функции, MCP-серверы или AI-агентов и хотите запускать их без Docker с полной совместимостью Node.js — это проект, за которым стоит следить.