Skip to content

v0.1.0 Telegram Bot API v10.0

Latest

Choose a tag to compare

@kolomiichenko kolomiichenko released this 20 May 11:28
f612567

First public release. End-to-end load-testing kit for Telegram bots: a
fast HTTP mock of the Bot API, a real-Telegram relay for in-the-loop
debugging, and a k6 extension to drive virtual users at scale.

Components

  • telegym-mock - drop-in HTTP server speaking the Telegram Bot API.
    15 explicit handlers for methods with real side effects (sendMessage,
    editMessageText, setWebhook, getMe, file uploads, callback queries, ...)
    and a spec-driven dispatcher backed by the embedded
    PaulSonOfLars/telegram-bot-api-spec covering the remaining 161 methods
    with shape-valid responses. HTMX debug-chat UI for browser-only
    manual testing. Prometheus /metrics for RPS, latency, dispatch lag.

  • telegym-proxy - relay between real Telegram and the mock. Run
    it with a throwaway bot from @BotFather and chat with your bot-under-
    test from a real Telegram client. Native stickers, formatting,
    inline buttons, attachments.

  • xk6-telegym - k6 extension exposing a tg JS API:
    tg.newUser, user.send, user.click, user.awaitText,
    user.awaitButton. Two-phase scenarios (register-then-replay)
    supported via tg.appendUser + the parsePool helper.

  • Observability - Prometheus + Grafana docker-compose stack with a
    pre-provisioned telegym dashboard correlating k6 load with mock
    latency on the same timeline.

Quickstart

git clone https://github.com/kolomiichenko/telegym.git
cd telegym
make build build-examples
./examples/echobot/run.sh

See README for architecture, the full Scenario API, real-user modes, and metrics setup.

Compatibility

  • Go 1.26+ required (see go.mod)
  • Bot API 10.0 spec embedded (May 2026)
  • Tested on linux/amd64, linux/arm64, darwin/amd64, darwin/arm64,
    windows/amd64

What's next

  • editMessageMedia parity with editMessageText in the proxy
  • HTMX SSE for the debug chat (currently 1s polling)
  • Sticker file_id round-trip in telegym-proxy
  • k6 cloud distributed mode