Skip to main content

Mubble 1.6.0 (stable)

Downloads Downloads

Github Examples

Mubble is a next-generation framework known for its great speed and simplicity. It is written using aiohttp, asyncio, and msgspec.
(Author's words) Make the fastest bot ever!


Speed measurement

Each test contains 100 different API calls

Test Mubble (sec/avg) Aiogram (sec/avg) Telebot (sec/avg) Winner
1 0.12896 0.30656 0.24000 Mubble
2 0.12620 0.14554 0.17649 Mubble
3 0.13366 0.14902 0.13141 Mubble
4 0.12437 0.14864 0.13717 Mubble
5 0.12754 0.15863 0.18894 Mubble
6 0.12261 0.15175 0.17157 Mubble
7 0.14395 0.16154 0.19383 Mubble
8 0.12508 0.15084 0.24207 Mubble
9 0.12239 0.14838 0.14282 Mubble
10 0.12610 0.14478 0.13068 Mubble
AVG 0.12869 0.16687 0.17550 Mubble

Getting started

Installing:

pip install mubble
poetry add mubble
poetry add git+https://github.com/vladislavkovalskyi/mubble.git#master

Simple bot example:

import random

from mubble import Token, API, Mubble, Message, CallbackQueryEq
from mubble.rules import StartCommand, Text, Markup, CallbackData
from mubble.tools.keyboard import InlineKeyboard, InlineButton

api = API(Token("Your token"))
bot = Mubble(api)


class Keyboard:
    menu = (
        InlineKeyboard()
        .add(InlineButton("✍️ Write hello", callback_data="hello"))
        .row()
        .add(InlineButton("🍌 Choice banana", callback_data="banana"))
    ).get_markup()

    back = (
        InlineKeyboard().add(InlineButton("⬅️ Back", callback_data="menu"))
    ).get_markup()


@bot.on.message(StartCommand())
async def start_handler(message: Message):
    await message.answer(
        "👋 Hello, I'm Mubble! How can I help you?\n\n"
        "My available commands:\n"
        "- /start\n"
        "- /menu\n"
        "- /random [from number] [to number]"
    )


@bot.on.message(Text("/menu"))
async def menu_handler(message: Message):
    await message.answer(
        "📃 Here's your menu! Use the keyboard.", reply_markup=Keyboard.menu
    )


@bot.on.message(Markup(["/random", "/random <a:int> <b:int>"]))
async def random_handler(message: Message, a: int = None, b: int = None):
    if None in (a, b):
        await message.answer(
            "🤓 Wrong syntax. You also need to write the first number and the second number."
        )
        return

    await message.answer(f"🎲 Your random number is {random.randint(a, b)}")


@bot.on.callback_query(CallbackQueryEq("menu"))
async def menu_handler(cq: CallbackQuery):
    await cq.edit_text(
        "📃 Here's your menu! Use the keyboard.", reply_markup=Keyboard.menu
    )


@bot.on.callback_query(CallbackQueryEq("hello"))
async def hello_handler(cq: CallbackQuery):
    await cq.edit_text("👋 Hello, I'm Mubble!", reply_markup=Keyboard.back)


@bot.on.callback_query(CallbackQueryEq("banana"))
async def fruits_handler(cq: CallbackQuery):
    await cq.answer("You clicked on the 🍌!")


bot.run_forever()

Слава Україні! 🇺🇦

by Vladyslav Kovalskyi

Metadata

Release files for mubble 1.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mubble 1.6.0
File Size Uploaded
mubble-1.6.0.tar.gz 598.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mubble 1.6.0
File Interpreter ABI Platform
mubble-1.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 850.9 kB

Release files / mubble-1.6.0.tar.gz

Download URL mubble-1.6.0.tar.gz
Size 598.2 kB
Tags Source
SHA-256 checksum
How to use checksums
a257fa2d63c4d70ceac2862e62b2d17e80f55370c77b9dafe5f639b249ae4284
BLAKE2b-256 checksum
How to use checksums
b2b3d8d798049ce11410429b5d63f5733eaece490f86e315e6374957eb6718c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-httpx/0.28.1

Release files / mubble-1.6.0-py3-none-any.whl

Download URL mubble-1.6.0-py3-none-any.whl
Size 252.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a811f1174f7b8216424dc70a79ed1a124bd3b2f6754c258c1e2b0169f133e923
BLAKE2b-256 checksum
How to use checksums
bf74cfc98669b376a44e848c5fe830200f97434d9fcbbb834fabf1c541de7659
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-httpx/0.28.1

Release history Release notifications | RSS feed

This release

1.6.0 This release

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.1.1

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page