Skip to content

Move from "weechat" to "api" relayΒ #188

@flashcode

Description

@flashcode

Hello,

WeeChat author here 🫑

The API relay is now in WeeChat since version 4.3.0, released in May 2024 β€” 2 years ago.

The goal of this API is to completely replace the "weechat" relay, and this one will be removed in future, but no timeline for this removal has been decided/published yet.
This will be done once all clients are compatible with the API relay.

There are many benefits to using this API over the weechat protocol:

  • standard-compliant API:
    • HTTP, you can use curl to test
    • REST API
    • JSON for input/output β€” no binary protocol to parse
  • websocket with automatic compression using permessage-deflate
  • no internal structures exposed:
    • no use of pointers: risk of crashing remote WeeChat is near to 0
    • no use of complex data like hdata
    • color codes are ANSI colors by default (WeeChat internal colors still available as option)
  • all dates are using UTC (no timezone issue)
  • used by WeeChat itself to connect to another WeeChat (with /remote command).

The only drawback I can see is the time needed to switch from weechat protocol to this API in the clients.

Now that the API relay is stable, I think it's time to plan & implement the changes in Lith.
As it is very different from the weechat protocol, you may miss some things in the API.

So I would see this development in two phases:

  1. Plan the change: analyze what is missing in the API relay. I'm available to help and complete the API according to the needs β€” or tell you how you can live without the feature πŸ˜„. Just ping me!
  2. Implement the changes to replace the weechat relay by API relay.

You can find the API documentation here: https://weechat.org/files/doc/weechat/devel/weechat_relay_api.en.html

Feel free to ping me if you need further information.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions