Documentazione IRC · Intermedio
IRCv3: le estensioni dell’IRC moderno
IRCv3 è un insieme di specifiche che fanno evolvere IRC senza obbligare tutti i client a cambiare contemporaneamente. Le capacità si negoziano separatamente: una semplice etichetta «compatibile con IRCv3» non garantisce tutte le funzioni.
Il team di Dialova · Verificato il
In questa sezione
- Account-tag: identificare l’account dietro un messaggioCome funziona account-tag: tag account aggiunto dal server, differenza tra nickname e account, negoziazione e precauzioni per i bot IRC.
- Batch: raggruppare eventi IRC collegatiBatch IRCv3: apertura, chiusura, tag batch, annidamento e differenze tra raggruppamento, cronologia e multiline.
- Negoziare le capacità con CAPUna negoziazione IRCv3 CAP passo dopo passo: LS 302, elenco suddiviso, REQ, ACK, NAK, END e modifiche dopo la connessione. Esempi ed errori di implementazione.
- Message tag: i metadati dei messaggi IRCCome leggere i tag IRCv3: prefisso @, separatori, escape, tag client, TAGMSG e limiti. Esempi per distinguere metadati e testo.
- SASL su IRC: autenticare un accountSASL su IRC: differenze rispetto a TLS e NickServ, meccanismi PLAIN ed EXTERNAL, negoziazione CAP ed errori di autenticazione.
- Server-time: datare i messaggi con l’ora del serverCome funzionano server-time e il tag time: timestamp UTC, negoziazione, cronologia, ora locale e limiti dell’ordine dei messaggi.
Un’evoluzione compatibile con i client esistenti #
CAP scopre e attiva le estensioni comuni a client e server. Il supporto dipende da versioni, moduli, servizi e impostazioni effettivamente usati. Occorre distinguere una funzionalità annunciata, una richiesta e una realmente accettata.
| Categoria | Meccanismi da conoscere |
|---|---|
| Connessione e identità | CAP, sasl, account-tag, account-notify, extended-join |
| Presentazione e aggiornamenti | server-time, echo-message, away-notify, multi-prefix |
| Metadati e raggruppamento | message-tags, batch, labeled-response |
| Cronologia | draft/chathistory e draft/event-playback, ancora in sviluppo alla data della verifica |
Leggere lo stato e le dipendenze #
Il catalogo ufficiale distingue le specifiche definitive dai lavori in corso. Un’estensione con prefisso draft/ può cambiare in modo incompatibile. Il nome di una capacità, il nome di un tag e il tipo di un batch sono identificativi distinti: chathistory è un tipo di batch, mentre la capacità in sviluppo usa draft/chathistory.
Questa prima versione approfondisce CAP, SASL, message-tags, server-time, account-tag e batch. Le altre capacità sono citate per contestualizzarne l’uso, senza creare pagine vuote. Per il testo completo consulta le specifiche ufficiali.
Per chi sviluppa un client #
- Leggere interamente CAP LS, comprese le risposte suddivise e i valori.
- Attivare solo le capacità implementate e attendere ACK.
- Accettare messaggi aggiuntivi tra le fasi di uno scambio.
- Non confondere lo stato attuale con la riproduzione di eventi storici.
- Gestire i tag sconosciuti senza inventarne gli effetti.
Fonti e verifica
Gli esempi usano nickname e domini fittizi, tranne gli endpoint esplicitamente documentati. Le estensioni e le impostazioni specifiche di una rete sono indicate nel testo.
- IRCv3 — catalogue des spécifications ↗Fonte della specifica · consultata il 2026-10-29
- IRCv3 — Client Capability Negotiation ↗Fonte della specifica · consultata il 2026-10-29
- IRCv3 — chathistory, spécification en développement ↗Fonte della specifica · consultata il 2026-10-29