Ingernirated: чтобы можно было "дополнять" Node.js, вам одного Си не хватит. Ядро Node.js это огромная обёртка над различными технологиями диспетчеризации событий. Для каждой операционной системы это разная технология. Вам нужно будет прежде всего выучить их, разобраться с асинхронной моделью, по которой они работают, изучить их баги и фичи.
Ко всему прочему, нужно отлично знать сами сети, контроль перегрузок потока, каждую мелочь. Посмотрите выступления самого Райана. Там огромные исследования проводили, чтобы ядро было быстрое.
И ещё придётся знать тонкости JavaScript, да.
Поэтому, советую забросить эту идею и начать с малого.
Напишите чат хотя бы. Сначала на TCP. Потом подключите TLS, разберитесь что нужно для него. Потом можно добавить ещё фич. Сразу начинать с такого монстра, как Нода, это пустая трата времени.
Vlad_beg: с какой целью вы используете сишные массивы char[] в C++? с родными std::string в 5 раз меньше кода же, и всё уже заточено под них для записи в файл...
нужно писать либо на чистом Си, либо на чистом C++, не нужно их смешивать, а потом бороться с проблемами
Включите предупреждения компилятора. Тот же clang спокойно себе предупреждает, когда видит, что вы делаете что-то не то и просит явно поставить скобки вокруг выражения.
DevMan: тоже работаю с множеством виртуалок, с дурными жрущими IDE на джаве, по 10-12 инстансов различных анализаторов, дизассемблеров. При этом ещё хватает запускать компиляцию на все 12 ядер и держать несколько инстансов gradle в режиме ci. Больше 20-22 гигабайт ни разу не видел занятых.
Сергей Горностаев: это естественно.
Но, практически все книги, которые я читал по разработке, включали в себя "вспомогательную утилитную библиотеку", когда автору лень всё объяснять, он скрывает это, как "неважный код", который типа не нужно разбирать. Всякие врапперы с первой главы, которые "мы рассмотрим позже". В итоге это создаёт ещё больше проблем для новичка. Здесь тот же случай.
TechNOIR: не понял, что значит по http?
Автоматом инкапсулировать в http? Нет, не применимо.
Это просто биндинг портов, уровни выше дальше можете сами оборачивать уже. А если оно уже инкапсулировано, то ему без разницы. что перенаправлять.
Ко всему прочему, нужно отлично знать сами сети, контроль перегрузок потока, каждую мелочь. Посмотрите выступления самого Райана. Там огромные исследования проводили, чтобы ядро было быстрое.
И ещё придётся знать тонкости JavaScript, да.
Поэтому, советую забросить эту идею и начать с малого.
Напишите чат хотя бы. Сначала на TCP. Потом подключите TLS, разберитесь что нужно для него. Потом можно добавить ещё фич. Сразу начинать с такого монстра, как Нода, это пустая трата времени.