A C# Actor Model library.
I was looking for an actor model thing with some requirements :
- no dependancy from another library
- coding in plain C#, with such things like 'SendMessage', 'new Actor()', 'Become(behavior)'
- actor can change their own behaviors
- actor can send messages
- actor can create other actors
- behaviors are dynamic
- actor can send messages across servers
var sender = new BaseActor() ;
var receiver = new BaseActor() ;
and in sender code ..
receiver.SendMessage("something") ;
- behavior can be attached or removed from actor, (an actor can change it's own behavior ...)
- actor can send messages across servers, you just need to hold a reference (an IActor interface) to another actor on a server ...
- some actors can behave as public services, or be supervised
- ARnActorModel could also be used as a basis for active object, defining an object and casting an async interface around it as a facility.
- You need VS2019 to compile ARnActorModel
Unit tests are included as well as some sample applications.
I used the excellent OpenCover to give some tests coverage and it's checked with AppVeyor for continuous integration.
- .Net 4.6 (Actor.Base, Actor.Util, Actor.Server, Actor.Service)
- Netcore 2.1 (Actor.Base, Actor.Util)
- Netstandard 2.0 (Actor.Base, Actor.Util)
- more coverage (target 90%)
- focus on future vs actor (They now are basically the same object, with different interfaces)
- Improved Message Loop