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

Другие вопросы по тегам