Ruby неблокирующие библиотеки против Node
Я оцениваю Ruby EventMachine (и подобные неблокирующие фреймворки, такие как Cramp) против Node.js. Я работал с Node раньше, но никогда не работал с EventMachine. Одна из идей, которую поддерживает Райан Даль, заключается в том, что экосистема библиотек в javascript должна быть аналогично неблокируемой, чтобы способствовать этому. Это одна из причин, по которой Node был разработан с нуля.
Мой вопрос, вы можете продвинуться в Ruby без блокировки? Я предполагаю, что одного EventMachine часто недостаточно для создания полного стека веб-приложений. Если да, то какие другие библиотеки в Ruby поддерживают неблокирующий ввод-вывод (например, для доступа к базе данных / файловой системе /http)?
2 ответа
Вам стоит ознакомиться с работами Ильи Григорика и его работами по Синхронии и Голиафу.
Они помогают вам писать асинхронный код с обратными вызовами в императивном стиле (кажется синхронным).
Как отметил @Holder Just, здесь есть список неблокирующих библиотек для использования с EventMachine:
https://github.com/eventmachine/eventmachine/wiki/Protocol-Implementations