Большинство веб-сайтов сейчас используют одно ядро ​​​​процессора из многих, тем самым они значительно сокращают взаимодействие с пользователем, замораживая всю сеть в ее фактическом состоянии. В эпоху глубокого обучения и опыта работы в реальном времени кажется, что сеть уперлась в стену.

Почему все это происходит? Причина предельно проста — безопасность потоков. Веб-воркеры были сделаны изолированными по дизайну, и самым неудобным из этого является ограничение запуска веб-воркеров из отдельного файла.

Поэтому для облегчения работы с параллельными процессами в веб-среде мы выпустили новую библиотеку под названием The Dark Wasp. В двух словах, идея состоит в том, чтобы сохранить большую часть кода веб-приложения в хранилище и загрузить его по запросу в отдельном потоке, не нужно загружать всю кодовую базу сразу. Одни и те же функции можно использовать во внешнем и внутреннем интерфейсе (веб-браузер или Node.js).



Для доступа к хранилищу нам понадобится имя самого хранилища — свойство «app» и уникальный идентификатор текущего пользователя — свойство «peer». Если хранилища с таким именем не существует, оно будет создано, и пользователь получит права владельца. Последние присоединившиеся пользователи будут иметь ограниченные права, будучи простыми одноранговыми узлами.

Теперь для примера создадим случайную функцию:

В приведенном выше примере app.wasp.random.set() означает создание осы (лямбда-функции) с именем «random» и кодом, который следует в методе set(). При этом хранилища не существует, поэтому «пир» получит права владельца.

Далее доставляем функцию в хранилище, выполнив файл:

node store.js

Сделанный! Дальнейшее использование хранимых функций проще простого, в браузере это выглядит следующим образом:

… и окружение Node.js («одноранговый узел» не первый, так что в данном случае никаких особых примет)

Вот и все!