Skip to content
Petr Bena edited this page Feb 27, 2019 · 7 revisions

General info

Building

Architecture

GrumpyChat components and how they work together

+--------------+ +-----------------+
|GrumpyChat <-----------+----------->Grumpyd |
|Client (Qt UI)| | |Client (headless)|
+--^-----------+ | +-------^---------+
| | |
| | |
+--+------------+ +----+-----+ +------+----+
|libirc2htmlcode| |GrumpyCore<------+ libgp |
+---------------+ +----^-----+ |GP protocol|
| +-----------+
|
+-----+------+
|libircclient|
+-----^------+
|
|
+--+---+
|libirc|
+------+

GrumpyCore (libcore)

Contains common code for GrumpyChat, deals with

  • IRC and GP sessions
  • Scrollback concept and model
  • Configuration management
  • Command processing and autocompletion
  • Grumpyd client
  • SQLite interface

libirc

Very abstract base for IRC library that can be used as a base for IRC client or server library.

libircclient

Full featured IRC client library based on libirc

GrumpyChat (Qt UI)

Graphical frontend based on GrumpyCore, implements:

  • Graphical frontend for scrollbacks
  • Tree menu on side for scrollbacks
  • Text input box for commands
  • Graphical user menu

Grumpyd (Headless client)

Headless IRC client based on GrumpyCore that supports multiple user sessions, implements:

  • In-memory frontend for scrollbacks
  • Grumpyd server
  • User management

libgp

Low level binary protocol that is used for communication between GrumpyCore and Grumpyd

libirc2htmlcode

Library that converts IRC markup to html

Clone this wiki locally