Microsoft открыла фреймворк Reactive Extensions

ПО Свободное ПО Софт Открытое ПО
, Текст: Любовь Касьянова
Корпорация Microsoft объявила о намерении открыть код фреймворка Rx (Reactive Extensions). Rx представляет собой набор библиотек, который позволяет разработчикам «связывать между собой асинхронные потки данных» - функциональность, достаточно критичная для современных приложений.

На текущем этапе развития технологий многие приложения и системы собирают данные из множества источников: от сообщений в микроблогах до биржевых котировок, REST-запросов или сигналов логической шины. Библиотеки Reactive Extensions упрощают извлечение данных, поступающих асинхронно от разных ресурсов.

Фреймворк позволяет представлять потоки данных в виде квантовых наблюдаемых (observables), запрашивать потоки при помощи LINQ-операторов и синхронизировать их обработку при помощи планировщиков (schedulers). Благодаря этому удается избежать ряда проблем, с которыми сталкиваются разработчики настольных приложений и приложений для web.

К примеру, зачастую данные, поступающие асинхронно, вмешиваются в работу приложения и блокируют обработку других данных или иные процессы. Столкновение с такими данными сильно затрудняет обработку исключений и расстраивает синхронность работы приложения.

Reactive Extensions разрабатывался командой Microsoft под руководством Эрика Мейджера (Eric Meijer). Фреймворк используется в проектах таких гигантов как GitHub (Rx применяется в клиенте GitHub для Windows) и Netflix.

Пол Беттс (Paul Betts), разработчик GitHub, известный своим вкладом в интеграцию сервиса с Windows, отмечает, что команда GitHub даже создала ReactiveUI - технологию разработки пользовательских интерфейсов на базе Reactive Extensionsю. Технология также портирована на MacOS X под именем ReactiveCocoa.

Открытый код Reactive Extensions в настоящий момент включает в себя Rx.NET - библиотеку для приложений .NET, RxJS для JavaScript и Rx++ для нативных приложений на C++. Кроме того, код включает в себя Ix (Interactive Extensions) - расширение фреймворка для работы с нативными объектами. Microsoft также предоставила набор обучающих образцов кода, демонстрирующих использование LINQ для событий (Tx) и LINQ2Charts.

Известно, что команда разработчиков Microsoft, трудящаяся над фреймворком, будет переведена в MS Open Tech Hub - одно из подразделений по разработке открытого ПО. Группа программистов намерена дальше развивать фреймворк и сотрудничать с сообществами, которые пожелают использовать его в своих проектах.

Код проекта доступен на rx.codeplex.com под лицензией Apache 2.0. В скором времени на сайте будут доступны обучающие видеоматериалы и техническая документация.