Как Wasmer с помощью Codex создал Node.js-рантайм для edge

Что если за несколько недель — силами небольшой команды — создать инструмент, на разработку которого в обычных условиях ушло бы год-два? Именно это удалось компании Wasmer: используя OpenAI Codex (агент для написания кода) и модель GPT-5.5, они выпустили Edge.js — открытый JavaScript-рантайм (среда выполнения) для безопасного запуска Node.js-приложений внутри WebAssembly-песочницы.

ℹ Что такое edge-вычисления?
Edge computing (граничные вычисления) — это подход, при котором код выполняется как можно ближе к пользователю: на CDN-узлах, граничных серверах или IoT-устройствах, а не в центральном облаке. Это снижает задержку и повышает скорость отклика.

Проблема: 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 обеспечивает совместимость с Node.js 24 и может выполнять всё, что умеет Node.js, включая популярные фреймворки — Next.js и Astro.

Архитектура 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 продолжает эту линейку, ещё сильнее ориентируясь на профессиональные задачи.

📝 Как Codex помог с C++
Edge.js требовал глубокого знания внутреннего устройства Node.js и работы с C++ — низкоуровневым языком программирования. Codex позволял разработчикам, не владеющим C++, формулировать задачу на естественном языке, получать рабочий код, а затем итеративно его улучшать. Это многократно расширило эффективную «пропускную способность» команды.

Производительность: цифры честно

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 находится в активной разработке (версия 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Изоляция без DockerJS-движокEdge-оптимизация
Edge.js (Wasmer)✅ Node.js v24✅ WASIXJavaScriptCore / QuickJS
Deno⚠️ ЧастичнаяV8
Cloudflare Workers❌ WinterCG APIV8
BunJavaScriptCore⚠️
Node.jsV8

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 — это проект, за которым стоит следить.