Skip to content

Pengenalan

VibeGram adalah framework Bot Telegram berbasis TypeScript yang ringan dan dirancang untuk lingkungan produksi. VibeGram membawa 20 modul bawaan untuk routing, state, keamanan, webhook, plugin, dan broadcasting.

Mengapa VibeGram?

Tabel ini membandingkan bagaimana fitur umum bot dikemas, bukan klaim bahwa framework lain tidak bisa mengimplementasikannya. Tabel dicek terhadap grammy@1.44.0, telegraf@4.16.3, dan dokumentasi resmi mereka pada 2026-07-07; package komunitas di luar docs resmi tidak didata secara menyeluruh.

AreaVibeGramgrammYTelegrafAPI Bot Mentah
Pipeline middlewareCoreCoreCoreManual
Tipe TypeScriptCoreCoreCoreManual
State sessionCore session()Plugin session built-inCore session()Manual
Alur conversationCore Conversation, Scene, WizardOfficial @grammyjs/conversationsCore Scenes / WizardSceneManual
Rate limiting masukCore rateLimit()Official @grammyjs/ratelimiterMiddleware eksternal atau customManual
Flood control keluarCore BotQueue; official @vibegram/throttlerOfficial @grammyjs/transformer-throttler + runnerMiddleware eksternal atau customManual
Menu interaktifCore MenuOfficial @grammyjs/menuPrimitive keyboard atau library menu eksternalManual
Helper layout keyboardCore Markup.grid()InlineKeyboard / Keyboard dengan row() / from()Markup.inlineKeyboard(..., { columns, wrap })Manual
Cache response APICore apiCache()Transformer atau middleware customMiddleware customManual
Validasi init-data WebAppHelper HMAC coreValidasi custom/manualValidasi custom/manualManual
Integrasi framework webhookAdapter Express, Fastify, Hono, Koa, Native HTTPwebhookCallback() untuk web frameworkHelper launch/create webhook plus contohManual
Model errorHierarki class error VibeGramClass error frameworkClass error frameworkManual

Referensi yang dipakai untuk perbandingan ini: plugin grammY, session grammY, menu grammY, conversation grammY, rate limiter grammY, flood control grammY, webhook callback grammY, docs Telegraf, session Telegraf, Telegraf WizardScene, dan Telegraf inline keyboard.

Gambaran Arsitektur

text
Instansi Bot
  TelegramClient (transport HTTP)
  Sistem Plugin (BotPlugin + Preset)
  Composer (stack middleware)
    logger()
    dedupeUpdates()
    rateLimit()
    apiCache()
    session()
    filters, scenes, wizards, conversations, menus
    handler Anda
  Context (helper per-update)
  BotQueue (broadcasting + scheduling)
  Adapter framework (Express, Fastify, Hono, Koa, Native HTTP)

Modul Bawaan (20)

ModulDeskripsi
BotEntry point dengan polling, webhook, dan plugin
TelegramClientClient Telegram Bot API dengan transport HTTP internal
ContextHelper per-update untuk pesan, media, admin, dan utility
ComposerStack middleware dengan use, command, on, hears, dan action
MarkupHelper keyboard, grid, dan escaping aman
sessionSession store bertipe dengan pola adapter
SceneRuang state percakapan bernama
WizardForm multi-step linear
ConversationHelper dialog async dengan validasi dan timeout
MenuMenu inline stateful dengan sub-navigasi
FiltersPredikat update yang bisa dikomposisi
InlineResultsBuilder hasil inline query
PluginBotPlugin, createPlugin, dan Preset
BotQueueBroadcasting dan scheduling rate-limited
apiCacheCache response Telegram API berbasis TTL
rateLimitMiddleware anti-spam inbound
dedupeUpdatesDropper update duplikat dengan memory atau custom store
WebAppUtilsValidasi HMAC Telegram Mini App
I18nDeteksi locale dan middleware terjemahan
AdaptersAdapter webhook Express, Fastify, Hono, Koa, dan Native HTTP

Cakupan Bot API

VibeGram menargetkan Telegram Bot API 10.1 dengan:

  • Helper Context untuk pesan, media, admin, forum, business flow, checklist, sticker, hadiah, dan verifikasi.
  • Cakupan TypeScript kuat untuk object utama Telegram.
  • Adapter webhook dengan validasi secret token dan body limit.
  • Dukungan Telegram Stars, Draft Messages, Managed Bots, Rich Messages, Join Request Queries, dan media link pada poll.

Yang Baru di 2.5.0

  • Perlindungan update duplikat lewat dedupeUpdates(), MemoryUpdateDedupeStore, dan subpath vibegram/dedupe.
  • Kontrol commit offset polling dengan polling.offsetCommit: 'processed' untuk retry update yang gagal sebelum offset dinaikkan.
  • Batas ukuran response lewat TelegramClientOptions.maxResponseBytes.
  • Routing command lebih aman untuk mention bot dan tabrakan prefix command.
  • Timeout HTTP kini mencakup parsing body dan cleanup stream.
  • Opsi queue dan rate-limit kini gagal cepat saat nilai numeriknya tidak valid.
  • Interpolasi Markdown plugin Codex di-escape untuk nilai dari user.
  • Plugin security kini menyediakan helper production preset.

Lihat CHANGELOG untuk detail release lengkap.

Released under the ISC License.