Pudu programming language
Menu
Package

@chrismichaelps / pudu-lang-mediator

In-process messaging for Pudu: requests, notifications, streams, pipeline behaviors, processors, and exception handling

0.1.0Apache-2.01

InstallClose

← All contributions

feat(mediator): publish the initial mediator package #2

merged

@chrismichaelps wrote on 2026-10-06

Closes #1

Behaviour

@chrismichaelps/pudu-lang-mediator 0.1.0 for Pudu 0.1.3: in-process messaging between the parts of a program.

  • Kinds — Request.kind (answers a value), Request.command (answers ()), Notification.kind, and Stream.kind; typed identities made once and shared.
  • Pipelines — per-kind and open behaviors, pre- and post-processors, exception handlers, and exception actions, composed once at build time in one documented order; stream behaviors that may wrap the sink.
  • Publishing — Sequential (default), Continuing, Parallel, Bounded, or a custom Publishing.Strategy.
  • Mediator — build reports every registration problem at once; send, resolve, publish, stream, collect, reader, and untyped dispatch, broadcast, and streamEnvelope through envelopes.
  • Seams — Sender and Publisher traits implemented by the mediator; typed context items and cooperative cancellation.
  • Integrations — validation (pudu-lang-validator), structured logging (pudu-lang-log), and resilience (pudu-lang-resilience) behaviors, the only modules importing other packages.

Values cross untyped boundaries through slots, never casts; a twin kind under a registered name answers Mismatched instead of reaching the wrong handler.

Verification

Against the published 0.1.3 compiler, from a clean pudu install --locked:

  • pudu check, pudu fmt --check, and pudu lint are clean over src test tools examples.
  • pudu test test: 24 suites pass, 235 assertions, including concurrency (parallel peaks, bounded worker limits, crash containment, reader back-pressure and close), the vault parity suite, and an integration scenario.
  • Every program under examples/ answers 0.
  • pudu run tools/Mutate.pudu --domain --threshold 100: killed 12, survived 0.

Read and reply on GitHub ↗