An open API service indexing awesome lists of open source software.

https://github.com/rockorager/comlink

An experimental IRC client
https://github.com/rockorager/comlink

irc irc-client zig zig-package

Last synced: 3 months ago
JSON representation

An experimental IRC client

Awesome Lists containing this project

README

        

# comlink

An experimental IRC client written in zig. Join the discussion in #comlink on
libera.chat.

![screenshot of comlink](screenshot.png)

## Installation

### Arch Linux

[comlink](https://aur.archlinux.org/packages/comlink) is available as a package in the AUR. It can be installed using an AUR helper (e.g. paru).

```sh
paru -S comlink
```

### Zig Build System

`comlink` is written in zig and can be installed using the zig build system,
version 0.14.0.

```sh
git clone https://github.com/rockorager/comlink
cd comlink
zig build -Doptimize=ReleaseSafe --prefix ~/.local
```

## Configuration

Configuration is loaded from `$HOME/.config/comlink/init.lua`

Works best with `soju`. [irctoday](https://irctoday.com) runs a paid instance of `soju`, and
another paid alternative is [pico.sh](https://pico.sh/irc)

```lua
local comlink = require("comlink")

local config = {
server = "chat.sr.ht",
user = "rockorager",
nick = "rockorager",
password = "password",
real_name = "Tim Culverhouse",
tls = true,
}

-- Pass the server config to connect. Connect to as many servers as you need
comlink.connect(config)

-- Bind a key to an action
comlink.bind("ctrl+c", "quit")
```

Storing passwords in configuration files is generally considered a poor
security practice. The following example reads the password from an external
password manager:

```lua
local comlink = require("comlink")

local proc =
assert(io.popen("hiq -dFpassword proto=irc address=irc.example.com nickname=alex", "r"))
local password = proc:read("*l")
proc:close()

local config = {
-- …other fields here…
password = password,
}
```

## Contributing

Patches accepted on the [mailing list](https://lists.sr.ht/~rockorager/comlink)

Pull requests accepted on [Github](https://github.com/rockorager/comlink)