OnRabbleClient Documentation

Welcome

This is the official developer documentation for OnRabbleClient — a lightweight, modular, and real-time chat client built with modern C++ and QML.

OnRabbleClient is designed to connect to an OnRabble-compatible chat server via secure WebSocket connections and supports multiple chat windows, message filtering, and dynamic authentication workflows. It is part of the larger OnRabble ecosystem, but this guide focuses solely on the client application.

If you're new to the project, we recommend starting with gettingstarted.html.

Architecture Highlights

- Built in modern C++ and QML with modularity and maintainability in mind

- Communicates with the backend via Qt WebSockets

- Employs proxy models for reactive message filtering in QML

- Emphasizes declarative binding and separation of concerns

Guide Sections

  • gettingstarted.html — Set up your development environment and run the client
  • clientguide.html — Explore the core components and architecture of the Qt client
  • keyprocesses.html — Follow the lifecycle from discovery to authentication and connection
  • payloads.html — Understand the message and data structures used in communication
  • models.html — Learn how chat data is exposed to QML using reactive model classes
  • qmlpages.html — Browse QML types exposed by the client for UI integration

Contributing

OnRabbleClient is my first open-source project, and while I'm not currently accepting direct contributions, I welcome feedback, suggestions, or insights from more experienced developers.

The goal of this project is to grow both technically and architecturally, and I’m always open to learning from others who have built similar systems or worked with Qt at scale.

The source code is available at: https://github.com/daftpy/OnRabbleClient