[package]
name = "foukoapi"
version = "0.1.0-alpha.1"
edition = "2021"
rust-version = "1.75"
authors = ["Fouko <mail@fouko.xyz>"]
description = "Cross-platform bot framework in Rust. Write your handlers once, run the same bot on Telegram and Discord with shared accounts, embeds, keyboards and SQLite storage."
license = "MIT"
repository = "https://github.com/FoukoDev/FoukoApi"
homepage = "https://api.fouko.xyz"
documentation = "https://docs.rs/foukoapi"
readme = "README.md"
keywords = ["bot", "telegram", "discord", "chat", "framework"]
categories = ["api-bindings", "asynchronous"]
include = [
"src/**/*.rs",
"examples/**/*.rs",
"Cargo.toml",
"README.md",
"LICENSE",
]
[features]
default = ["telegram", "discord", "sqlite"]
telegram = ["dep:teloxide", "dep:url", "dep:reqwest"]
discord = ["dep:serenity"]
sqlite = ["dep:rusqlite"]
full = ["telegram", "discord", "sqlite"]
[dependencies]
tokio = { version = "1.40", features = ["rt-multi-thread", "macros", "signal", "sync", "time"] }
futures = "0.3"
async-trait = "0.1"
thiserror = "1"
tracing = "0.1"
dotenvy = "0.15"
teloxide = { version = "0.13", default-features = false, features = ["macros", "rustls", "ctrlc_handler"], optional = true }
reqwest = { version = "0.11", default-features = false, features = ["rustls-tls", "socks"], optional = true }
url = { version = "2", optional = true }
serenity = { version = "0.12", default-features = false, features = ["client", "gateway", "rustls_backend", "model", "utils"], optional = true }
rusqlite = { version = "0.30", features = ["bundled"], optional = true }
[dev-dependencies]
tokio = { version = "1.40", features = ["full"] }
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
[[example]]
name = "quickstart"
required-features = ["telegram", "discord"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]