vansha / 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
  • Custom F# DSL and bindings (DU, Pattern Matching, Tasks)
  • 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

For server-side library:

PM> Install-Package Orleankka.Runtime

Check out "Getting started" guide: C# , F#.

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.

Packages

[inside]
Orleankka Core and client lib
Orleankka.Runtime Server-side runtime lib
Orleankka.TestKit Unit testing kit
Orleankka.FSharp F# core and client lib
Orleankka.FSharp.Runtime F# server-side runtime lib
Orleankka.Template Scaffolding template for dotnet new (F#)

Examples

C#
F#

Documentation

Documentation can be found here.

Community

License

Apache 2 License

About

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

License:Apache License 2.0


Languages

Language:C# 97.7%Language:F# 2.1%Language:JavaScript 0.1%Language:Batchfile 0.1%