Фреймворк для Go на основе акторной модели, вдохновлённый Erlang/OTP, для создания распределённых систем с супервизией и прозрачным взаимодействием по сети.
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 обновляется ежедневно.
Похожие проекты
NATS server — высокопроизводительная система обмена сообщениями для связи между сервисами, устройствами и периферийными системами; входит в CNCF.
Rivet — оркестратор с открытым исходным кодом, который распределяет долговечные Actor с состоянием для агентов, рабочих процессов и приложений реального времени — альтернатива планированию на основе подов.
Акторный фреймворк для Rust: запускает типизированных акторов, обменивающихся сообщениями в рантайме Tokio, и поддерживает супервизию.
Распределённая облачная SQL-база данных на основе строго согласованного хранилища «ключ — значение» с поддержкой wire-протокола PostgreSQL.
Движок оркестрации фоновых задач, AI-агентов и долговечных рабочих процессов с SDK для Python, TypeScript, Go и Ruby и Postgres в качестве слоя надёжного хранения.