feat: add channels directory with 44 channel adapter definitions (#21)

* feat: add channels directory with 44 channel adapter definitions

Add TOML definitions for all 44 channel adapters supported by LibreFang,
matching the adapters in librefang-channels crate source code.

Each channel file includes: id, name, description, category, icon,
protocol, and metadata (url, docs).

Categories: messaging, social, enterprise, developer, iot, email.

Also adds channels template at templates/channel.toml.

* fix: format templates/channel.toml with taplo
This commit is contained in:
Evan authored and GitHub committed 2026-03-25 11:30:10 +09:00
1 parent 1440059e99
commit 644213eef6
46 files changed
+457

No files matched your search

+7
View File
@@ -0,0 +1,7 @@
# Channel Adapters Registry
This directory contains TOML metadata files for all supported LibreFang channel adapters.
Each `.toml` file describes a single channel adapter including its name, description, category, protocol, and relevant links. These files are used by the LibreFang registry to discover and display available channel integrations.
See `../templates/channel.toml` for the file format template.
+10
View File
@@ -0,0 +1,10 @@
id = "bluesky"
name = "Bluesky"
description = "Bluesky AT Protocol adapter for posting and reading from the decentralized social network"
category = "social"
icon = "🦋"
protocol = "rest-api"
[metadata]
url = "https://bsky.app"
docs = "https://docs.bsky.app"
+10
View File
@@ -0,0 +1,10 @@
id = "dingtalk"
name = "DingTalk"
description = "DingTalk bot adapter for sending messages to DingTalk groups and conversations"
category = "enterprise"
icon = "🔔"
protocol = "webhook"
[metadata]
url = "https://www.dingtalk.com"
docs = "https://open.dingtalk.com/document/"
+10
View File
@@ -0,0 +1,10 @@
id = "discord"
name = "Discord"
description = "Discord bot adapter for sending and receiving messages in Discord servers and channels"
category = "messaging"
icon = "🎮"
protocol = "websocket"
[metadata]
url = "https://discord.com"
docs = "https://discord.com/developers/docs/intro"
+10
View File
@@ -0,0 +1,10 @@
id = "discourse"
name = "Discourse"
description = "Discourse forum adapter for posting topics and replies via the Discourse API"
category = "developer"
icon = "💬"
protocol = "rest-api"
[metadata]
url = "https://www.discourse.org"
docs = "https://docs.discourse.org"
+10
View File
@@ -0,0 +1,10 @@
id = "email"
name = "Email"
description = "Email adapter for sending and receiving messages via SMTP and IMAP protocols"
category = "email"
icon = "📧"
protocol = "imap"
[metadata]
url = ""
docs = ""
+10
View File
@@ -0,0 +1,10 @@
id = "feishu"
name = "Feishu"
description = "Feishu (Lark) bot adapter for messaging within the Feishu collaboration platform"
category = "enterprise"
icon = "🐦"
protocol = "webhook"
[metadata]
url = "https://www.feishu.cn"
docs = "https://open.feishu.cn/document/"
+10
View File
@@ -0,0 +1,10 @@
id = "flock"
name = "Flock"
description = "Flock bot adapter for team messaging and notifications in Flock workspaces"
category = "enterprise"
icon = "🐥"
protocol = "webhook"
[metadata]
url = "https://www.flock.com"
docs = "https://docs.flock.com"
+10
View File
@@ -0,0 +1,10 @@
id = "gitter"
name = "Gitter"
description = "Gitter adapter for developer chat rooms linked to GitHub repositories"
category = "developer"
icon = "💻"
protocol = "rest-api"
[metadata]
url = "https://gitter.im"
docs = "https://developer.gitter.im/docs/"
+10
View File
@@ -0,0 +1,10 @@
id = "google_chat"
name = "Google Chat"
description = "Google Chat adapter for sending messages and cards to Google Workspace conversations"
category = "enterprise"
icon = "💚"
protocol = "webhook"
[metadata]
url = "https://chat.google.com"
docs = "https://developers.google.com/workspace/chat/api/reference/rest"
+10
View File
@@ -0,0 +1,10 @@
id = "gotify"
name = "Gotify"
description = "Gotify adapter for sending push notifications to a self-hosted Gotify server"
category = "iot"
icon = "🔊"
protocol = "rest-api"
[metadata]
url = "https://gotify.net"
docs = "https://gotify.net/docs/"
+10
View File
@@ -0,0 +1,10 @@
id = "guilded"
name = "Guilded"
description = "Guilded bot adapter for messaging in Guilded servers and channels"
category = "enterprise"
icon = "🏰"
protocol = "websocket"
[metadata]
url = "https://www.guilded.gg"
docs = "https://www.guilded.gg/docs/api/"
+10
View File
@@ -0,0 +1,10 @@
id = "irc"
name = "IRC"
description = "IRC adapter for connecting to Internet Relay Chat networks and channels"
category = "messaging"
icon = "📡"
protocol = "irc"
[metadata]
url = ""
docs = "https://datatracker.ietf.org/doc/html/rfc2812"
+10
View File
@@ -0,0 +1,10 @@
id = "keybase"
name = "Keybase"
description = "Keybase adapter for encrypted messaging via the Keybase chat API"
category = "messaging"
icon = "🔐"
protocol = "rest-api"
[metadata]
url = "https://keybase.io"
docs = "https://keybase.io/docs/api/"
+10
View File
@@ -0,0 +1,10 @@
id = "line"
name = "LINE"
description = "LINE Messaging API adapter for sending and receiving messages on the LINE platform"
category = "messaging"
icon = "🟢"
protocol = "webhook"
[metadata]
url = "https://line.me"
docs = "https://developers.line.biz/en/docs/messaging-api/"
+10
View File
@@ -0,0 +1,10 @@
id = "linkedin"
name = "LinkedIn"
description = "LinkedIn adapter for posting updates and messages via the LinkedIn API"
category = "social"
icon = "💼"
protocol = "rest-api"
[metadata]
url = "https://www.linkedin.com"
docs = "https://learn.microsoft.com/en-us/linkedin/"
+10
View File
@@ -0,0 +1,10 @@
id = "mastodon"
name = "Mastodon"
description = "Mastodon adapter for posting toots and reading timelines on Mastodon instances"
category = "social"
icon = "🐘"
protocol = "rest-api"
[metadata]
url = "https://joinmastodon.org"
docs = "https://docs.joinmastodon.org/api/"
+10
View File
@@ -0,0 +1,10 @@
id = "matrix"
name = "Matrix"
description = "Matrix adapter for decentralized messaging via the Matrix client-server API"
category = "messaging"
icon = "🟩"
protocol = "matrix"
[metadata]
url = "https://matrix.org"
docs = "https://spec.matrix.org/latest/client-server-api/"
+10
View File
@@ -0,0 +1,10 @@
id = "mattermost"
name = "Mattermost"
description = "Mattermost adapter for team messaging and notifications in Mattermost workspaces"
category = "enterprise"
icon = "🔵"
protocol = "websocket"
[metadata]
url = "https://mattermost.com"
docs = "https://api.mattermost.com"
+10
View File
@@ -0,0 +1,10 @@
id = "messenger"
name = "Messenger"
description = "Facebook Messenger adapter for sending and receiving messages via the Messenger Platform"
category = "messaging"
icon = "💬"
protocol = "webhook"
[metadata]
url = "https://www.messenger.com"
docs = "https://developers.facebook.com/docs/messenger-platform/"
+10
View File
@@ -0,0 +1,10 @@
id = "mqtt"
name = "MQTT"
description = "MQTT adapter for publishing and subscribing to messages on MQTT brokers"
category = "iot"
icon = "📶"
protocol = "mqtt"
[metadata]
url = "https://mqtt.org"
docs = "https://mqtt.org/mqtt-specification/"
+10
View File
@@ -0,0 +1,10 @@
id = "mumble"
name = "Mumble"
description = "Mumble adapter for text messaging in Mumble voice communication servers"
category = "iot"
icon = "🎙️"
protocol = "websocket"
[metadata]
url = "https://www.mumble.info"
docs = "https://wiki.mumble.info/wiki/Protocol"
+10
View File
@@ -0,0 +1,10 @@
id = "nextcloud"
name = "Nextcloud"
description = "Nextcloud Talk adapter for messaging within self-hosted Nextcloud instances"
category = "iot"
icon = "☁️"
protocol = "rest-api"
[metadata]
url = "https://nextcloud.com"
docs = "https://nextcloud-talk.readthedocs.io/en/latest/"
+10
View File
@@ -0,0 +1,10 @@
id = "nostr"
name = "Nostr"
description = "Nostr adapter for publishing and reading events on the Nostr decentralized protocol"
category = "messaging"
icon = "🟣"
protocol = "websocket"
[metadata]
url = "https://nostr.com"
docs = "https://github.com/nostr-protocol/nips"
+10
View File
@@ -0,0 +1,10 @@
id = "ntfy"
name = "ntfy"
description = "ntfy adapter for sending push notifications via the ntfy pub-sub service"
category = "iot"
icon = "🔔"
protocol = "rest-api"
[metadata]
url = "https://ntfy.sh"
docs = "https://docs.ntfy.sh"
+10
View File
@@ -0,0 +1,10 @@
id = "pumble"
name = "Pumble"
description = "Pumble adapter for team messaging and notifications in Pumble workspaces"
category = "enterprise"
icon = "🐝"
protocol = "webhook"
[metadata]
url = "https://pumble.com"
docs = "https://pumble.com/help"
+10
View File
@@ -0,0 +1,10 @@
id = "qq"
name = "QQ"
description = "QQ bot adapter for messaging within Tencent QQ groups and channels"
category = "messaging"
icon = "🐧"
protocol = "websocket"
[metadata]
url = "https://im.qq.com"
docs = "https://bot.q.qq.com/wiki/"
+10
View File
@@ -0,0 +1,10 @@
id = "reddit"
name = "Reddit"
description = "Reddit adapter for posting and reading content via the Reddit API"
category = "social"
icon = "🤖"
protocol = "rest-api"
[metadata]
url = "https://www.reddit.com"
docs = "https://www.reddit.com/dev/api/"
+10
View File
@@ -0,0 +1,10 @@
id = "revolt"
name = "Revolt"
description = "Revolt adapter for messaging in the open-source Revolt chat platform"
category = "developer"
icon = "🔴"
protocol = "websocket"
[metadata]
url = "https://revolt.chat"
docs = "https://developers.revolt.chat/api/"
+10
View File
@@ -0,0 +1,10 @@
id = "rocketchat"
name = "Rocket.Chat"
description = "Rocket.Chat adapter for messaging in self-hosted Rocket.Chat instances"
category = "enterprise"
icon = "🚀"
protocol = "rest-api"
[metadata]
url = "https://www.rocket.chat"
docs = "https://developer.rocket.chat/reference/api"
+10
View File
@@ -0,0 +1,10 @@
id = "signal"
name = "Signal"
description = "Signal adapter for secure end-to-end encrypted messaging via Signal CLI"
category = "messaging"
icon = "🔒"
protocol = "rest-api"
[metadata]
url = "https://signal.org"
docs = "https://github.com/AsamK/signal-cli"
+10
View File
@@ -0,0 +1,10 @@
id = "slack"
name = "Slack"
description = "Slack bot adapter for sending and receiving messages in Slack workspaces"
category = "enterprise"
icon = "💜"
protocol = "websocket"
[metadata]
url = "https://slack.com"
docs = "https://api.slack.com/docs"
+10
View File
@@ -0,0 +1,10 @@
id = "teams"
name = "Microsoft Teams"
description = "Microsoft Teams adapter for messaging and notifications in Teams channels"
category = "enterprise"
icon = "🟦"
protocol = "webhook"
[metadata]
url = "https://www.microsoft.com/en-us/microsoft-teams"
docs = "https://learn.microsoft.com/en-us/microsoftteams/platform/"
+10
View File
@@ -0,0 +1,10 @@
id = "telegram"
name = "Telegram"
description = "Telegram Bot API adapter for sending and receiving messages"
category = "messaging"
icon = "📱"
protocol = "bot-api"
[metadata]
url = "https://telegram.org"
docs = "https://core.telegram.org/bots/api"
+10
View File
@@ -0,0 +1,10 @@
id = "threema"
name = "Threema"
description = "Threema Gateway adapter for secure messaging via the Threema platform"
category = "messaging"
icon = "🔏"
protocol = "rest-api"
[metadata]
url = "https://threema.ch"
docs = "https://gateway.threema.ch/en/developer/api"
+10
View File
@@ -0,0 +1,10 @@
id = "twist"
name = "Twist"
description = "Twist adapter for async team communication in Twist workspaces"
category = "enterprise"
icon = "🔀"
protocol = "rest-api"
[metadata]
url = "https://twist.com"
docs = "https://developer.twist.com/v3/"
+10
View File
@@ -0,0 +1,10 @@
id = "twitch"
name = "Twitch"
description = "Twitch adapter for reading and sending messages in Twitch stream chats"
category = "social"
icon = "🎮"
protocol = "irc"
[metadata]
url = "https://www.twitch.tv"
docs = "https://dev.twitch.tv/docs/irc/"
+10
View File
@@ -0,0 +1,10 @@
id = "viber"
name = "Viber"
description = "Viber bot adapter for sending and receiving messages via the Viber Bot API"
category = "messaging"
icon = "💜"
protocol = "webhook"
[metadata]
url = "https://www.viber.com"
docs = "https://developers.viber.com/docs/api/"
+10
View File
@@ -0,0 +1,10 @@
id = "webex"
name = "Webex"
description = "Cisco Webex adapter for messaging and notifications in Webex spaces"
category = "enterprise"
icon = "🌐"
protocol = "webhook"
[metadata]
url = "https://www.webex.com"
docs = "https://developer.webex.com/docs/api/getting-started"
+10
View File
@@ -0,0 +1,10 @@
id = "webhook"
name = "Webhook"
description = "Generic webhook adapter for sending and receiving messages via HTTP callbacks"
category = "developer"
icon = "🔗"
protocol = "webhook"
[metadata]
url = ""
docs = ""
+10
View File
@@ -0,0 +1,10 @@
id = "wechat"
name = "WeChat"
description = "WeChat Official Account adapter for messaging on the WeChat platform"
category = "messaging"
icon = "💚"
protocol = "rest-api"
[metadata]
url = "https://www.wechat.com"
docs = "https://developers.weixin.qq.com/doc/offiaccount/en/Getting_Started/Overview.html"
+10
View File
@@ -0,0 +1,10 @@
id = "wecom"
name = "WeCom"
description = "WeCom (WeChat Work) adapter for enterprise messaging within WeCom organizations"
category = "enterprise"
icon = "🏢"
protocol = "webhook"
[metadata]
url = "https://work.weixin.qq.com"
docs = "https://developer.work.weixin.qq.com/document/"
+10
View File
@@ -0,0 +1,10 @@
id = "whatsapp"
name = "WhatsApp"
description = "WhatsApp Business API adapter for sending and receiving messages on WhatsApp"
category = "messaging"
icon = "📱"
protocol = "rest-api"
[metadata]
url = "https://www.whatsapp.com"
docs = "https://developers.facebook.com/docs/whatsapp/cloud-api/"
+10
View File
@@ -0,0 +1,10 @@
id = "xmpp"
name = "XMPP"
description = "XMPP adapter for messaging via the Extensible Messaging and Presence Protocol"
category = "messaging"
icon = "📨"
protocol = "xmpp"
[metadata]
url = "https://xmpp.org"
docs = "https://xmpp.org/extensions/"
+10
View File
@@ -0,0 +1,10 @@
id = "zulip"
name = "Zulip"
description = "Zulip adapter for topic-based team messaging in Zulip organizations"
category = "enterprise"
icon = "💧"
protocol = "rest-api"
[metadata]
url = "https://zulip.com"
docs = "https://zulip.com/api/"