Next: Architecture, Previous: mmc, Up: mmc
Mattermost (MM) does not have any sane and convenient client. GUI, mobile versions and browser application requiring you to frequently update your Web-browser are not an option of course.
Matterhorn is the only known console/terminal client for me, but until there will be any official instructions how to bootstrap Haskell compiler, I can not even try it. matterircd was the only possibility to use that platform (that is forced to be used by my employer) that acts like an ordinary IRC-server bridged with MM.
But IRC-client (irssi in my case) can not send
long and multiline messages, because of IRC protocol limitations. And
because of frequent cyrillic alphabet usage, that takes twice as long
bytes per character, messages are relatively short and are often split
on single word boundary. Also it has neither vi-editing capabilities,
nor simple way to use/emulate readline
or use external editor.
matterircd
converted attached files to URLs that can be used
with supplementary utility to download them from the server with proper
authorization.
Fortunately MM is written on Go and has convenient simple library to
deal with its API. So I tried to write my own console implementation
from the scratch without those IRC-limitations. I thought about bridging
to XMPP protocol, that won’t have any noticeable limitations, even
containing file transfer possibility, but denied the idea as yet another
level of complication. Moreover I was not sure that I was satisfied with
any known XMPP-client (although in general I liked
mcabber). Writing an ordinary TUI
application with high level library similar to curses
seemed
to be pretty complicated task and reinventing of yet another bicycle.
Initially I was not a fan at all of
suckless way of chat clients
building, where you have bunch of FIFOs per channel you deal with. But
more I thought, that idea started to look nicer and nicer.
Look what I came to!
Next: Architecture, Previous: mmc, Up: mmc