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.
By using this project or its source code, for any purpose and in any shape or form, you grant your implicit agreement to all the following statements:
- You condemn Russia and its military aggression against Ukraine
- You recognize that Russia is an occupant that unlawfully invaded a sovereign state
- You support Ukraine's territorial integrity, including its claims over temporarily occupied territories of Crimea and Donbas
- You reject false narratives perpetuated by Russian state propaganda
To learn more about the war and how you can help, click here. Glory to Ukraine! 🇺🇦
- 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)
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
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
Package | Description |
---|---|
Orleankka | Core abstractions lib |
Orleankka.Client | Client-side lib |
Orleankka.Runtime | Server-side runtime lib |
Orleankka.TestKit | Unit testing kit |
- Hello, world! [demo]
- "WebScan" [demo]
- TestKit [demo]
- Event Sourcing
- Reentrant messages [rw-x]
- Client-side observers [chat]
- Streams [chat]
- Switchable behaviors
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.
- Join Gitter chat
- Follow the @Orleankka Twitter account for announcements
Apache 2 License