@little-bonsai/ingrates

0.10.2 • Public • Published

Ingrates

An isomorphic actor system

minzipped size version license


ingrates is an actor system based on async generators. I provides a very small API surface area and tries to remain relatively out of your way.

You can find docs at ingrates.littlebonsai.co.uk

Example

import createActorSystem from "@little-bonsai/ingrates";

async function* ChildActor({ parent, dispatch }, firstname, lastname) {
  const msg = yield;

  if (msg.type === "HELLO") {
    dispatch(msg.src, {
      type: "GOODBYE",
      msg: \`say goodbye to \${firstname} \${lastname}\`,
    });
  }
}

async function* RootActor({ spawn, self, dispatch }) {
  const myChild = spawn(ChildActor, "Bert", "Jurnegen");

  dispatch(myChild, { type: "HELLO" });

  while (true) {
    const msg = yield;
    if (msg.type === "GOODBYE") {
      console.log("Please... my son. He's very sick");
    }
  }
}


createActorSystem()(RootActor);

Package Sidebar

Install

npm i @little-bonsai/ingrates

Weekly Downloads

2

Version

0.10.2

License

MIT

Unpacked Size

83.3 kB

Total Files

13

Last publish

Collaborators

  • little-bonsai