https://github.com/mtkruto/mtkruto
Cross-runtime JavaScript library for building Telegram clients
https://github.com/mtkruto/mtkruto
bun deno mtproto nodejs telegram
Last synced: about 1 month ago
JSON representation
Cross-runtime JavaScript library for building Telegram clients
- Host: GitHub
- URL: https://github.com/mtkruto/mtkruto
- Owner: MTKruto
- License: lgpl-3.0
- Created: 2023-04-01T15:25:03.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2026-04-01T18:21:46.000Z (3 months ago)
- Last Synced: 2026-04-02T06:26:10.457Z (3 months ago)
- Topics: bun, deno, mtproto, nodejs, telegram
- Language: TypeScript
- Homepage: https://mtkru.to
- Size: 5.31 MB
- Stars: 157
- Watchers: 1
- Forks: 14
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README
# MTKruto
Cross-runtime JavaScript library for building Telegram clients
###### [Documentation](https://mtkruto.deno.dev) / [API Reference](https://deno.land/x/mtkruto/mod.ts) / [Discussion Chat](https://t.me/MTKrutoChat) / [License](#license)
### Key Features
- **Cross-runtime.** Supports Node.js, Deno, browsers, and Bun.
- **Type-safe.** Written in TypeScript with accurate typings.
- **Prioritizes the Web.** Prefers Web APIs over runtime-specific APIs.
- **Easy-to-use.** Provides its own high-level API on top of the Telegram API.
- **Extensible.** Its middleware system lets you integrate external code.
> Note: MTKruto has not reached version 1.0.0 yet. While it can run in production, we currently do not recommend depending on it for critical projects.
## Get Started
### Node.js
```ts
const { Client, getRandomId } = require("@mtkruto/node"); // npm install @mtkruto/node
const client = new Client();
await client.connect();
const pong = await client.invoke({ _: "ping", ping_id: getRandomId() });
console.debug(pong);
```
### Deno
```ts
import { Client, getRandomId } from "https://deno.land/x/mtkruto/mod.ts";
const client = new Client();
await client.connect();
const pong = await client.invoke({ _: "ping", ping_id: getRandomId() });
console.debug(pong);
```
### Browsers
```html
import { Client, getRandomId } from "https://cdn.jsdelivr.net/npm/@mtkruto/browser/esm/mod.js";
const client = new Client();
await client.connect();
const pong = await client.invoke({ _: "ping", ping_id: getRandomId() });
console.debug(pong);
```
### Bun
```ts
import { Client, getRandomId } from "@mtkruto/node"; // bun add @mtkruto/node
const client = new Client();
await client.connect();
const pong = await client.invoke({ _: "ping", ping_id: getRandomId() });
console.debug(pong);
```
## License
MTKruto is made open-source under the GNU Lesser General Public License version 3, or at your option, any later version. Refer to [COPYING](./COPYING) and [COPYING.LESSER](./COPYING.LESSER) for more.