Нет, по задумке во внуторь воркера можно подключать библиотеки. В протоколе общения с воркером есть тип сообщения в котором указана ссылка на файл, который будет подключен в воркер через importScript.
Aingis, я не совсем понимаю в чём вопрос. Суммарное время работы кода увеличилось (не значительно, хотя это конечно зависит от объема передаваемых данных), так как нужно серриализовывать и парсить данные. Но за счёт того что обработка картинки происходит в воркере исчезло замирание интерфейса. Когда глазом перестали быть заметны тормоза — то да, я считаю что эти затраты окупаются. Возможно в дальнейшим мы добавим сущность типизированного массива, чтобы ускорить парсинг и серриализацию.
Ну описания нашего проекта в этом треде нет. Библиотека это «некий хак» для удобной работы с воркерами, я с этим согласен. На мой взгляд запуск дополнительного потока не должен требовать подготовки в виде настройки сборщика, это должен быть просто вызов асинхронного метода. Это гораздо удобнее в любой архитектуре. Это также уменьшает порог входа в данную технологию.
Данная библиотека используется в проектах и хорошо справляется с поставленными задачами. По мере расширений требований к ней добавляется новый функционал. Самая большая проблема в ней — невозможность использования замыкания.
А что в этой библиотеке кажется вам костыльным (кроме «eval»)?
Получилась библиотека с удобным АПИ, которая позволяет
просто выполнить произвольную функцию в другом потоке
Она сырая, но только пользователи и issue на гитхабе помогут сделать её лучше.
В целом я хотел получить способ удобно пользоваться многопоточностью в javascript. В каком-то виде это получилось, пользоваться или нет — личное дело каждого. Так как воркеры не особо востребованы — статья больше исследовательская, чем призыв к использованию.
Этот подход позволяет не менять архитектуру, не настраивать особым образом сборку проекта. Легко и просто перенести любой загруженный код в воркер, не переписывая всё вокруг.
Например библиотеки по считыванию QR кода сильно тормозят main процесс при своей работе, с помощью данной библиотеки ими можно пользоваться проще.
В целом случаи когда нужны воркеры не очень часто встречаются, но неудобство их использования заставляет разработчиков искать решения без них. У нас были случаи когда пользоваться воркером удобно.
Смысл данной библиотеки в том, чтобы отделить транспорт библиотеки от АПИ, таким образом мы можем писать реализацию протокола к любым задачам. Мы получаем возможность работать с любыми АПИ которые поддерживают обмен текстом. Например в nodejs общение с базами и прочее. Любая задача где требуется доставить сообщение на любой платформе может быть реализована на базе этой библиотеки, нужно только написать свой адаптер, который реализует отправку и получение сообщений.
Ну описания нашего проекта в этом треде нет. Библиотека это «некий хак» для удобной работы с воркерами, я с этим согласен. На мой взгляд запуск дополнительного потока не должен требовать подготовки в виде настройки сборщика, это должен быть просто вызов асинхронного метода. Это гораздо удобнее в любой архитектуре. Это также уменьшает порог входа в данную технологию.
А что в этой библиотеке кажется вам костыльным (кроме «eval»)?
Получилась библиотека с удобным АПИ, которая позволяет Она сырая, но только пользователи и issue на гитхабе помогут сделать её лучше.
В целом я хотел получить способ удобно пользоваться многопоточностью в javascript. В каком-то виде это получилось, пользоваться или нет — личное дело каждого. Так как воркеры не особо востребованы — статья больше исследовательская, чем призыв к использованию.
В целом случаи когда нужны воркеры не очень часто встречаются, но неудобство их использования заставляет разработчиков искать решения без них. У нас были случаи когда пользоваться воркером удобно.
Есть в планах добавить адаптер для разных вкладок, и вынести адаптеры в отдельные репозитории.
Кроме того в планах дописать типизацию для запросов.