botkit
botkit is a Rust library for building chat bots with one handler model across multiple platforms.
The botkit crate is the facade entrypoint for the workspace. It re-exports botkit-core by
default and exposes platform adapters behind explicit feature flags.
Installation
Use the facade crate when you want one dependency with opt-in platforms:
[]
= { = "0.1.0", = ["telegram"] }
Available facade features:
discordenablesbotkit::discordand theDiscordBotre-exports.telegramenablesbotkit::telegramand theTelegramBotre-exports.matrixenablesbotkit::matrixand theMatrixBotre-exports.fullenables all platform adapters.
You can also depend on the smaller crates directly:
botkit-coreprovides the shared bot abstractions, extractors, handlers, and response types.botkit-discordprovides the Discord integration.botkit-telegramprovides the Telegram integration.botkit-matrixprovides the Matrix integration.
Design goals
- Reuse the same handler style across platforms.
- Keep the core abstractions transport-agnostic.
- Support async-first bot execution.
- Keep platform adapters opt-in instead of forcing heavy dependencies by default.
- Expose platform crates separately instead of hiding everything behind type erasure.
Crates
botkit
Facade crate that re-exports the core API and feature-gated platform integrations.
botkit-core
Shared building blocks:
BotandBotBuilder- extractor-based handlers such as
User,CommandArgs, andMessageContent - unified
Responseand file response types
botkit-discord
Discord support built around gateway events and command/button handlers.
botkit-telegram
Telegram support for webhook-style handling and bot client operations.
botkit-matrix
Matrix support built on top of matrix-sdk, including encrypted room support.
Status
This project is a library workspace under active development. The API surface is still evolving.