Send messages from an XMPP chatroom to a Slack channel and vice versa. Connect Telegram groups. Have four-five-six-way chats.
The tetrad
name comes from tetra
meaning "four" and d
for "daemon", as originally it was going to connect
four platforms.
The word "тетрадь" (tetrádʹ [tʲɪˈtratʲ]
)
means "exercise book, notebook" in Russian, hence the icon (I know it's a
clipboard, not a notebook, but I like it :) ).
- Slack
- XMPP
- Telegram
- IRC
Note: you can have two-way communication between any of these services
- This code
- An MQTT server with anon user enabled running on local server (set broker urls in configs)
mvn package
and then
java -jar tetrad-0.1-with-dependencies.jar --config /path/to/config.yml
See Dockerfile.build
and Dockerfile.run
. The Dockerfile.run
currently in repo
will start several different services. Use it to create your own configurations
Run make all
to build source code, create and run docker images. Rum make run
to just run the created docker image
Config files specify what exactly tetrad
should be running. These could be
services or mappers.
These will listen to all incoming messages from a service (Slack,
Telegram etc.) and post them to a firehose
queue in MQTT.
They will listen to a specified mqtt topic and post messages on that topic back to the service.
See X-service.yml
for sample service configs.
A mapping will listen to all messages on the firehose
mqtt topic, will
convert the message according to a configuration and post the new message
back to a specified mqtt topic.
See X-to-Y.yml
for samle mapping configs.
Additionally apply a random transformation on a FirehoseMessage
.
See config/samples/slack-service.yml
for samle transformation config.
See config/samples/slack-to-xmpp.yml
for samle transformation config.
Icon made by Dario Ferrando from www.flaticon.com is licensed by CC 3.0 BY