envelope

package
v0.24.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 7, 2026 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

Package envelope is the JSON shape of every message published on <org_id>.<handle>.broadcast (per WIRE.md §3).

Index

Constants

View Source
const MaxBytes = 65536 // 64 KiB cap on the encoded envelope.

Variables

This section is empty.

Functions

This section is empty.

Types

type Message

type Message struct {
	ID        string    `json:"id"`
	Sender    string    `json:"sender"`
	Subject   string    `json:"subject"`
	Payload   string    `json:"payload"`
	CreatedAt time.Time `json:"created_at"`
}

Sender is the source handle the message was published *from* — the broadcaster's current source at publish time. Empty string when the publisher had no current source set (e.g. `ppz send <dest>` from a session that never connected). Distinct from the destination handle, which is encoded only in the NATS subject (per WIRE.md §3).

Subject is an optional header-line, separate from the payload. Two roles:

  • User-set: free-form text rendered as `[subject] payload` in the `ppz read` tabular default for inbox-shaped pipes. No CLI surface to set this in v0.23.0 — reserved for the next phase.
  • System-set: subjects starting with `ack:` are reserved for daemon- emitted protocol messages (e.g. `ack:read`) that the read formatter renders specially. Always serialised, even when empty, so receivers see a stable wire shape.

func New

func New(sender, subject, payload string, now time.Time) Message

func Unmarshal

func Unmarshal(b []byte) (Message, error)

func (Message) Marshal

func (m Message) Marshal() ([]byte, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL