lrstanley / girc

:bomb: girc is a flexible IRC library for Go :ok_hand:
https://pkg.go.dev/github.com/lrstanley/girc
MIT License
137 stars 13 forks source link

feature: IRCv3 Labeled Responses #58

Open lrstanley opened 1 year ago

lrstanley commented 1 year ago

✨ Describe the feature you'd like

Ref: IRCv3 Labeled Responses

Introduction

This specification adds a new message tag sent by clients and repeated by servers to correlate responses with a specific request.

Motivation

Certain client actions can result in responses from the server that vary in interpretation depending on how they were triggered, or otherwise lack a robust way to correlate with local state. Clients have historically needed to keep track of additional local state and/or apply comparison heuristics to server responses to correlate these appropriately.

Labeled responses enable a much simpler form of correlation by using a single id attached to a client request and repeated by the server in its response.

Additionally, labeled responses allow bouncers with multiple connected clients to direct responses (such as WHOIS queries or error messages, see examples) to the correct recipient.

Once support is added, the IRCv3 Library Support page needs to be updated to include these features.