Crate shukusai

source ·
Expand description

Festival

Festival’s internals that powers all of its frontends.

The crate festival is being squatted, so instead, Festival’s original name, shukusai, is used.

祝祭/shukusai translated means: Festival.

In documentation:

  • shukusai specifically means Festival’s internals
  • Festival means a frontend OR the project as a whole

Warning

The internals are not stable. There’s no restrictive, type-safe public API.

If you’re implementing a frontend, you are expected to implement the Kernel’s messages correctly.

You can look at festival-gui’s code as an example, and the internal documentation as reference.

API

The “API” between shukusai and the frontends are:

Each frontend must implement the correct message passing behavior to/from the Kernel and other various things.

Kernel itself will handle:

  • Logging initialization
  • Collection management
  • Pretty much everything

The Frontend implementation must:

  • Keep a channel to Kernel open at all times
  • Properly implement the messages To/From the Kernel
  • Properly handle shared data

There are shared functions/data that shukusai/Kernel exposes, notably:

It is up to the frontend on how to use these functions/data.

None of the data/message relationships are restrictive enough to be a public API, and a lot of behavior depends on knowledge that I have of the internals. Since I will most likely be creating all the frontends, there are no plans to make a well-defined public API for now (it’s a lot of work).

Macros

Structs

Enums

Constants

Functions