#telegram-bot #telegram #telegram-api #bot #bot-api #api

telegram_bots_api

Telegram bots api simple rust wrapper, and no more

10 releases (breaking)

0.77.0 Jul 14, 2024
0.76.0 Jul 14, 2024
0.75.0 Jun 18, 2024
0.74.0 May 30, 2024
0.0.1 Mar 8, 2024

#4 in #bots

Download history 32/week @ 2024-03-31 26/week @ 2024-04-07 247/week @ 2024-04-28 9/week @ 2024-05-05 618/week @ 2024-05-26 77/week @ 2024-06-02 22/week @ 2024-06-09 169/week @ 2024-06-16 3/week @ 2024-06-23 197/week @ 2024-07-14

204 downloads per month

MIT license

800KB
16K SLoC

Telegram

Static Badge codecov crates.io Static Badge docs.rs FOSSA Status

https://github.com/khusnetdinov/telegram_bots_api/actions/workflows/codecov_report/badge.svg https://github.com/khusnetdinov/telegram_bots_api/actions/workflows/lints/badge.svg https://github.com/khusnetdinov/telegram_bots_api/actions/workflows/msrv/badge.svg https://github.com/khusnetdinov/telegram_bots_api/actions/workflows/features/badge.svg https://github.com/khusnetdinov/telegram_bots_api/actions/workflows/tests/badge.svg https://github.com/khusnetdinov/telegram_bots_api/actions/workflows/rolling/badge.svg

Telegram bots api simple rust wrapper, and no more.

Features

  • async: asynchronous execution api calls
  • sync: synchronous execution api calls

Installation

Run cargo add telegram_bots_api, or add lines to Cargo.toml:

[dependencies]
telegram_bots_api = "0.77.0"
rust-version = "1.74.0"

Configuration


USAGE:
    sync-playground [FLAGS] [OPTIONS] --token <token>

FLAGS:
    -d, --debug         Environment: Debug mode
    -h, --help          Prints help information
    -p, --production    Environment: Is production
    -V, --version       Prints version information

OPTIONS:
        --connect-timeout <connect-timeout>    Client: Connect timeout in secs. Set a timeout for only the connect phase
                                               [default: 5]
        --timeout <timeout>                    Client: Timeout in secs. The timeout is applied from when the request
                                               starts connecting until the response body has finished [default: 5]
        --token <token>                        Telegram: Token
        --updates-limit <updates-limit>        Updates: Limits the number of updates to be retrieved [default: 100]
        --updates-offset <updates-offset>      Updates: Identifier of the first update to be returned [default: 0]
        --updates-timeout <updates-timeout>    Updates: Timeout in seconds for long polling [default: 0]
        --url <url>                            Telegram: Api url [default: https://api.telegram.org]

How to use

Only one required flag is token, example run:

$ cargo run -- --token 0000000000:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File structure:

.
├── Cargo.lock                                        # Lock file
├── Cargo.toml                                        # Toml file
├── LICENSE                                           # LICENSE
├── README.md                                         # README
├── /examples                                         # Examples
│   ├── /async
│   │   ├── get_me.rs
│   │   └── playground.rs
│   └── /sync
│       ├── get_me.rs
│       └── playground.rs
├── postman.json                                      # Postman collection
└── /src                                              # Source code
    ├── /api                                          # Api structs definitions
    │   ├── /enums                                    # Enums
    │   │   ├── bot_command_scope.rs
    │   │   ...
    │   │   └── reply_markup.rs
    │   ├── enums.rs
    │   ├── mod.rs
    │   ├── /params                                   # Params structs for payload
    │   │   ├── add_sticker_to_set.rs
    │   │   ...
    │   │   └── upload_sticker_file.rs
    │   ├── params.rs
    │   ├── /requests                                 # Request traits
    │   │   ├── async.rs
    │   │   └── sync.rs
    │   ├── requests.rs
    │   ├── /responses                                # Telegram responses structs definitions
    │   │   ├── error.rs
    │   │   ├── parameters.rs
    │   │   └── result.rs
    │   ├── responses.rs
    │   ├── /types                                    # Telegram types 
    │   │   ├── animation.rs
    │   │   ...
    │   │   └── write_access_allowed.rs
    │   └── types.rs
    ├── /clients                                      # Clients definitions
    │   ├── async.rs
    │   ├── mod.rs
    │   └── sync.rs
    ├── config.rs                                     # Config definition
    ├── errors.rs                                     # Errors definition
    ├── lib.rs
    └── /tests
        ├── /clients                                  # Cleints
        │   ├── async.rs                              # Async client tests
        │   ├── mod.rs
        │   └── sync.rs                               # Sync client tests
        ├── config.rs                                 # Config tests
        ├── errors.rs                                 # Errors tests
        ├── /helpers                                  # Helpers for tests
        │   ├── mocked_async.rs
        │   ├── mocked_sync.rs
        │   └── mod.rs
        ├── mod.rs
        └── responses                                 # Example of json responses
            ├── add_sticker_to_set_error.json
            ...
            └── upload_sticker_file_success.json

Dependencies

~14–29MB
~471K SLoC