MTKruto
Cross-runtime JavaScript library for building Telegram clients
Documentation / API Reference / Discussion Chat / License
Key Features
- Easy-to-use. Provides high-level methods and types for convenience.
- Cross-runtime. Supports Node.js, Deno, browsers, and Bun.
- Type-safe. Written in TypeScript with accurate typings.
- 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
Node.js
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
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
<script type="module">
import { Client, getRandomId } from "https://esm.sh/@mtkruto/browser";
const client = new Client();
await client.connect();
const pong = await client.invoke({ _: "ping", ping_id: getRandomId() });
console.debug(pong);
</script>
The @mtkruto/browser package can also be used with front end frameworks and bundlers.
Bun
import { Client, getRandomId } from "@mtkruto/mtkruto"; // bunx jsr i @mtkruto/mtkruto
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 and COPYING.LESSER for more.