Repolode
dotnet

dotnet/orleans

Кроссплатформенный .NET-фреймворк для создания распределённых и масштабируемых облачных приложений на основе модели виртуальных акторов.

Звёзды
10,912
Форки
2,147
Открытые issues
645
Последний коммит
21 час назад

Что это?

Orleans переносит в распределённые системы привычные концепции .NET: объекты, интерфейсы, async/await и исключения. Разработчики представляют сущности приложения в виде grains — акторов со стабильной идентичностью, поведением и, при необходимости, состоянием. Среда выполнения Orleans активирует grains по запросу, деактивирует простаивающие и находит их в кластере silos. Поэтому вызывающему коду не нужно знать, на каком сервере размещён нужный grain.

Grains могут хранить состояние в любой системе хранения и поддерживают такие возможности, как таймеры, долговременные напоминания, распределённые ACID-транзакции с сериализуемой изоляцией, управляемые потоки на базе очередей, например Azure Event Hubs или Amazon Kinesis, а также настраиваемое размещение grains. Кластеры можно масштабировать от одного silo до множества, а также восстанавливать после сбоев silos.

Orleans работает в Windows, Linux и macOS с .NET Standard 2.0 и более новыми средами выполнения .NET. Его можно развернуть в Kubernetes, на виртуальных или физических машинах, а также в PaaS-сервисах, таких как Azure App Service.

Ключевые возможности

  • 01Grains со стабильной идентичностью и необязательным постоянным состоянием, которое хранится в любой системе хранения
  • 02Распределённые ACID-транзакции с сериализуемой изоляцией и без центрального координатора
  • 03Управляемые потоки на базе сервисов очередей, таких как Azure Event Hubs и Amazon Kinesis
  • 04Долговременные напоминания и недолговечные таймеры для выполнения запланированных задач
  • 05Настраиваемые политики размещения grains и версионирование интерфейсов grains
  • 06Фильтры вызовов grains для авторизации, логирования и обработки ошибок

Сценарии использования

  • Создание IoT-бэкендов, где каждое устройство представлено grain — цифровым двойником
  • Создание облачных сервисов с состоянием и низкой задержкой, масштабируемых на несколько серверов
  • Обработка потоков событий почти в реальном времени с потребителями, использующими контрольные точки
  • Миграция односерверных приложений .NET к отказоустойчивым распределённым сервисам

Что важно знать

  • Для создания приложений с его помощью требуются экосистема .NET и C#.
  • Это фреймворк для распределённых приложений, поэтому запуск кластера требует больше усилий по настройке и эксплуатации, чем приложение в одном процессе.

В подборках

Темы

Частые вопросы

Что такое orleans?
Кроссплатформенный .NET-фреймворк для создания распределённых и масштабируемых облачных приложений на основе модели виртуальных акторов. Orleans переносит в распределённые системы привычные концепции .NET: объекты, интерфейсы, async/await и исключения. Разработчики представляют сущности приложения в виде grains — акторов со стабильной идентичностью, поведением и, при необходимости, состоянием. Среда выполнения Orleans активирует grains по запросу, деактивирует простаивающие и находит их в кластере silos. Поэтому вызывающему коду не нужно знать, на каком сервере размещён нужный grain.
orleans можно использовать бесплатно? Какая у него лицензия?
orleans распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
orleans всё ещё поддерживается?
Активно поддерживается. Последний коммит в orleans — 23 окт. 2026 г..
Для чего можно использовать orleans?
Создание IoT-бэкендов, где каждое устройство представлено grain — цифровым двойником Создание облачных сервисов с состоянием и низкой задержкой, масштабируемых на несколько серверов Обработка потоков событий почти в реальном времени с потребителями, использующими контрольные точки Миграция односерверных приложений .NET к отказоустойчивым распределённым сервисам
Где скачать orleans?
Исходный код и инструкции по установке — на GitHub: https://github.com/dotnet/orleans

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Rivet — оркестратор с открытым исходным кодом, который распределяет долговечные Actor с состоянием для агентов, рабочих процессов и приложений реального времени — альтернатива планированию на основе подов.

6,3 тыс.+3 за неделю281RustApache-2.0Обновлён 3 дня назад