OrleansContrib / Orleankka

Functional API for Microsoft Orleans http://orleanscontrib.github.io/Orleankka

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Orleankka Logo

Orleankka is a functional extension for Microsoft Orleans framework. It provides a message-based API similar to Akka/ProtoActor, carefully layered on top of the Orleans (that's what in a name). Orleankka is an excellent choice for use-cases which can benefit from composable, uniform communication interface, such as CQRS, event-sourcing, FSM, etc.

References: intro, features, slides and discussion.

Features

  • Message-based API with zero performance overhead
  • Switchable actor behaviors with built-in hierarchical FSM (behaviors)
  • Additional api to simplify programming long-running background tasks (jobs)
  • Poweful actor/proxy middlewares (interceptors)
  • Convenient unit testing kit (stubs, mocks, expectations)

How to install

To install client Orleankka library via NuGet, run this command in NuGet package manager console:

PM> Install-Package Orleankka.Client

For server-side library:

PM> Install-Package Orleankka.Runtime

Check out "Getting started" guide

Build sources

You will need VS2019 and .NET Core 3.x installed in order to build and open the solution. Clone repository and run the following in CLI from solution's root folder:

PM> Nake.bat

This will restore dependencies and build everything in debug mode. Run Nake.bat with -T switch to see available commands.

On MacOS\Linux distributions use below script to build, package or run tests:

$> ./nake.sh

Packages

Package Description
Orleankka Core abstractions lib
Orleankka.Client Client-side lib
Orleankka.Runtime Server-side runtime lib
Orleankka.TestKit Unit testing kit

Examples

Documentation

At present, documentation is undergoing a major overhaul. Please, check the unit tests and examples above to get up-to-date information on API usage.

Community

License

Apache 2 License

About

Functional API for Microsoft Orleans http://orleanscontrib.github.io/Orleankka

License:Apache License 2.0


Languages

Language:C# 99.9%Language:JavaScript 0.1%Language:Batchfile 0.0%Language:Shell 0.0%