Skip to content

Cross-runtime JavaScript library for building Telegram clients

License

LGPL-3.0, GPL-3.0 licenses found

Licenses found

LGPL-3.0
COPYING.LESSER
GPL-3.0
COPYING
Notifications You must be signed in to change notification settings

MTKruto/MTKruto

Repository files navigation

MTKruto

Cross-runtime JavaScript library for building Telegram clients

Key Features

  • Cross-runtime. With MTKruto you can build Telegram clients that run on Deno, browsers, or Node.js.
  • Uses Web APIs. MTKruto takes advantages of modern Web APIs wherever possible instead of third-party or runtime-specific solutions.
  • Uncomplicatedly extensible. Get started with a couple lines of code. Extend everything from the session store to the MTProto transport.
  • Type-safe. All parts of MTKruto including the generated functions and types are fully type-safe and play well with TypeScript.

Note: MTKruto has not reached version 1.0.0 yet. We highly recommend not to use it in production.

Get Started

Browsers

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

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

    const request = new functions.Ping({ pingId: utils.getRandomId() });
    console.debug(await client.invoke(request));
</script>

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

Deno

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

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

const request = new functions.Ping({ pingId: utils.getRandomId() });
console.debug(await client.invoke(request));

Node.js

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

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

const request = new functions.Ping({ pingId: utils.getRandomId() });
console.debug(await client.invoke(request));

License

MTKruto is made open-source under the GNU Lesser General Public License version 3, or at your option, any later version. You are bound by the terms and conditions of this license. Refer to the LICENSE file for more.

MTKruto owes the authors and contributors of Piltover, GramJS, Grm, mtcute, and other MTProto libraries and projects.