[][src]Crate kay

Kay is an experimental high-performance distributed actor system framework for Rust. It is developed as a component for Citybound (a city simulation game) but aims to be general-purpose.

Kay is inspired by Erlang/OTP and similar actor-oriented approaches, since it allows you to build a distributed application from isolated actors that communicate only through message-passing, which works transparently across processor and even network boundaries.

The main abstractions are Classes of actors that live inside an Actor System, adressed by TypedIDs. Classes can implement Traits, allowing generic dynamic dispatch.

Kay lacks many higher level features and error-handling mechanisms that other actor system frameworks offer since it puts a focus on high-performance and memory efficiency. This is achieved by storing actor state and message queues in consecutive chunks of memory, inspired by the data-oriented game engine design philosophy. The Compact library is used to help with this, offering serialisation-free linear memory layouts for plain old data and nested datastructures. This does, in turn, impose the constraint that actor state and messages need to implement Compact

Structs

ActorSystem
External
MachineID
Networking
Packet
RawID
World

Enums

Fate

Traits

Actor
ActorOrActorTrait
Message
TraitIDFrom
TypedID