Versions in this module Expand all Collapse all v0 v0.6.0 Sep 29, 2026 Changes in this version + const B64Pattern + const B64URLPattern + const KeyPattern + func ErrCodes() []string + func Extensions() []string + func ThreadStates() []string + type GrantObject struct + Aud string + Caps []string + Exp string + Iss string + Nonce string + Sig string + Sub string + type Message struct + T string + Type reflect.Type + func Messages() []Message + type PartKind struct + Doc string + K string + Optional []string + Required []string + func PartKinds() []PartKind v0.5.0 Sep 28, 2026 Changes in this version + const AuthContext + const ChunkSize + const ErrAuth + const ErrBadFrame + const ErrBlobRefused + const ErrForbidden + const ErrInternal + const ErrTooLarge + const ErrUnsupported + const ErrVersion + const KeyPrefix + const MaxLine + const MaxPresenceBytes + const PartBlob + const PartCode + const PartData + const PartText + const PresenceMaxHops + const StateClosed + const StateDone + const StateFailed + const StateOpen + const StateWaiting + const StateWorking + const TAck + const TAuth + const TBye + const TChunk + const TErr + const TGrant + const THello + const TIntroduce + const TMirror + const TMsg + const TPing + const TPong + const TPresence + const TPrivate + const TResume + const TState + const Version + var ErrBadSignature = errors.New("signature does not verify") + var ErrGrantExpired = errors.New("grant expired") + var ErrGrantInvalid = errors.New("invalid grant") + var ErrLineTooLong = errors.New("line exceeds 1 MiB") + var ErrNotObject = errors.New("line is not a JSON object") + var ErrPresenceInvalid = errors.New("invalid presence document") + func AuthPayload(myHello, peerHello []byte) []byte + func Canonical(doc []byte) ([]byte, error) + func CanonicalValue(v any) ([]byte, error) + func Decode(line []byte, v any) error + func DecodeB64(s string) ([]byte, error) + func Encode(v any) ([]byte, error) + func EncodeB64(b []byte) string + func ErrCloses(code string) bool + func Fingerprint(pub ed25519.PublicKey) string + func FormatKey(pub ed25519.PublicKey) string + func FormatTime(t time.Time) string + func IDTime(id string) (time.Time, bool) + func Nonce(n int) string + func Now() string + func ParseKey(s string) (ed25519.PublicKey, error) + func ParseTime(s string) (time.Time, error) + func ShortKey(key string) string + func SignAuth(priv ed25519.PrivateKey, myHello, peerHello []byte) string + func SignPresence(priv ed25519.PrivateKey, p *Presence) (json.RawMessage, error) + func VerifyAuth(peer ed25519.PublicKey, sig string, peerHello, myHello []byte) error + type Ack struct + type Auth struct + Grants []json.RawMessage + Sig string + type Bye struct + Reason string + type Chunk struct + Data string + Last bool + N int + Ref string + type Envelope struct + ID string + Re string + T string + TS string + Th string + func ParseEnvelope(line []byte) (Envelope, error) + type Err struct + Code string + Detail string + Ref string + type Grant struct + Aud string + Caps []string + Exp time.Time + Iss string + Nonce string + Raw json.RawMessage + Sig string + Sub string + func MintGrant(priv ed25519.PrivateKey, sub string, caps []string, exp time.Time, aud string) (*Grant, error) + func ParseGrant(raw []byte, now time.Time) (*Grant, error) + func (g *Grant) Has(c string) bool + func (g *Grant) Hash() string + type GrantMsg struct + Grant json.RawMessage + type Hello struct + About string + Addr string + Caps []string + Key string + Name string + Nonce string + Shares []string + V int + type IDGen struct + func NewIDGen() *IDGen + func (g *IDGen) New() string + func (g *IDGen) Observe(id string) + type IntroPeer struct + Address string + Key string + Name string + type Introduce struct + Grant json.RawMessage + Peer IntroPeer + type Mirror struct + Dir string + Line json.RawMessage + Of string + OfName string + Subject string + Withdraw bool + type Msg struct + Parts []Part + Subject string + type Part struct + Data json.RawMessage + K string + Lang string + Mime string + Name string + Ref string + Size int64 + Text string + func (p Part) MarshalJSON() ([]byte, error) + type Ping struct + type Pong struct + type Presence struct + About string + Active string + Harness string + Host string + Model string + Name string + Origin string + Outbox int + Peers []PresencePeer + Seq int64 + Shares []string + Sig string + TS string + Threads []PresenceThread + Unread int + Version string + Waiting bool + func ParsePresence(raw []byte) (*Presence, error) + func (p *Presence) Time() time.Time + type PresenceMsg struct + Doc json.RawMessage + Hops int + type PresencePeer struct + Key string + Name string + RTT int64 + Up bool + type PresenceThread struct + Mine string + Peer string + Subject string + Th string + Theirs string + Unread int + Updated string + type Private struct + type Reader struct + func NewReader(r io.Reader) *Reader + func (r *Reader) ReadLine() ([]byte, error) + type Resume struct + Seen map[string]string + type State struct + Note string + State string + type Writer struct + func NewWriter(w io.Writer) *Writer + func (w *Writer) WriteLine(line []byte) error