Skip to content
This repository was archived by the owner on May 22, 2026. It is now read-only.

weechat/weechat-relay

Repository files navigation

WeeChat Relay

CI Code coverage REUSE status

WeeChat Relay is a C library to communicate between WeeChat and a client using the "weechat" relay protocol.

Important

The relay "weechat" protocol has been superseded by "api", which provides many benefits (standard HTTP REST API, JSON).
All relay clients should now use the "api" relay.
This project is archived and should no longer be used!

Homepage: https://weechat.org/

Features

  • Communication between WeeChat and a client:
    • from client to WeeChat: build and send commands, decode binary messages received from WeeChat
    • from WeeChat to client: build and send binary messages.
  • Command-line interface to the WeeChat Relay library (weechat-relay-cli), which can be used for tests, debug or in shell scripts.

Install

Dependencies

The following packages are required:

  • CMake
  • GnuTLS
  • GNU Readline (for weechat-relay-cli)
  • libzstd
  • zlib

Compile

Installation in system directories (requires root privileges):

mkdir build
cd build
cmake ..
make
sudo make install

Installation in custom directory (for example your home):

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/path/to/directory ..
make
make install

Run tests

The following packages are required to compile tests:

  • libcpputest-dev
  • C++ compiler

Tests must be enabled when compiling WeeChat Relay:

cmake -DBUILD_TESTS=ON ..

They can be launched after compilation from the build directory:

ctest -V

Command-line interface

The binary weechat-relay-cli can be used to debug communication between a client and WeeChat relay.

For help:

weechat-relay-cli --help

Example:

$ weechat-relay-cli -dd -s -p 12345 localhost
Connected to 127.0.0.1 (SSL)
weechat-relay> init password=my_secret_password
<-- init password=my_secret_password (33 bytes)
      69 6E 69 74 20 70 61 73 73 77 6F 72 64 3D 6D 79   i n i t   p a s s w o r d = m y
      5F 73 65 63 72 65 74 5F 70 61 73 73 77 6F 72 64   _ s e c r e t _ p a s s w o r d
      0A                                                .
weechat-relay> info version
<-- info version (13 bytes)
      69 6E 66 6F 20 76 65 72 73 69 6F 6E 0A            i n f o   v e r s i o n .
--> 34 bytes received
      00 00 00 22 00 FF FF FF FF 69 6E 66 00 00 00 07   . . . " . . . . . i n f . . . .
      76 65 72 73 69 6F 6E 00 00 00 07 32 2E 39 2D 64   v e r s i o n . . . . 2 . 9 - d
      65 76                                             e v
    message (length: 34 bytes, data: 29 bytes, no compression):
      id: NULL
      info: "version" -> "2.9-dev"
weechat-relay> quit
<-- quit (5 bytes)
      71 75 69 74 0A                                    q u i t .

Copyright

Copyright © 2019-2026 Sébastien Helleu

This file is part of WeeChat Relay.

WeeChat Relay is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

WeeChat Relay is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with WeeChat Relay. If not, see https://www.gnu.org/licenses/.

About

WeeChat Relay protocol library, written in C.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Contributors