MTKruto

Cross-runtime JavaScript library for building Telegram clients

Documentation / API Reference / Discussion Chat / License

Key Features

  • Cross-runtime. Runs inside browsers, Deno, Node.js, and Bun.
  • Type-safe. DX is enhanced with TypeScript support.
  • Made for the Web. Leverages Web APIs.
  • Unopinionated. No hidden behaviors.
  • Extensible. Highly customizable.

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

Browsers

<script type="module">
    import { Client, getRandomId } from "https://esm.sh/@mtkruto/browser";

    const client = new Client();
    await client.connect();

    const pong = await client.api.ping({ ping_id: getRandomId() });
    console.debug(pong);
</script>

The @mtkruto/browser package can also be used with front end frameworks and bundlers.

Deno

import { Client, getRandomId } from "https://deno.land/x/mtkruto/mod.ts";

const client = new Client();
await client.connect();

const pong = await client.api.ping({ ping_id: getRandomId() });
console.debug(pong);

Node.js

const { Client, getRandomId } = require("@mtkruto/node"); // npm install @mtkruto/node

const client = new Client();
await client.connect();

const pong = await client.api.ping({ ping_id: getRandomId() });
console.debug(pong);

Bun

import { Client, getRandomId } from "@mtkruto/mtkruto"; // bunx jsr i @mtkruto/mtkruto

const client = new Client();
await client.connect();

const pong = await client.api.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 LICENSE for more.