Ответ
Node.js позволяет интегрировать код на других языках (C++, Rust, Python и т.д.) через механизмы Native Addons и Child Process.
Native Addons (N-API):
- Использует C/C++ для написания расширений
- Требует компиляции (node-gyp, cmake-js)
- Высокая производительность (работает в том же процессе)
Пример простого Native Addon:
#include <node_api.h>
napi_value Method(napi_env env, napi_callback_info args) {
napi_value greeting;
napi_create_string_utf8(env, "Hello from C++!", NAPI_AUTO_LENGTH, &greeting);
return greeting;
}
Child Process:
- Запуск внешних скриптов через
spawn,exec - Подходит для Python, Bash и других интерпретируемых языков
- Медленнее из-за IPC, но проще в реализации
Пример вызова Python:
const { spawn } = require('child_process');
const pyProcess = spawn('python', ['script.py']);
Выбор зависит от требований к производительности и сложности интеграции.