Skip to content

SyndARn/ARnActorModel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ARnActorModel

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

With ARnActor, now you can :

var sender = new BaseActor() ;
var receiver = new BaseActor() ;

and in sender code ..

receiver.SendMessage("something") ;

The library holds some useful features :

  • 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

GitHub version

Build status

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. Coverage Status

Supported Framework Nuget

  • .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)

Current works

  • more coverage (target 90%)
  • focus on future vs actor (They now are basically the same object, with different interfaces)
  • Improved Message Loop