Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 3 days 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 (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-15T06:40:53.000Z (9 days ago)
- Last Synced: 2024-12-15T07:27:19.673Z (9 days ago)
- Topics: bun, deno, mtproto, nodejs, telegram
- Language: TypeScript
- Homepage: https://mtkru.to
- Size: 4.07 MB
- Stars: 85
- Watchers: 2
- Forks: 11
- Open Issues: 2
-
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
- **Easy-to-use.** Provides high-level [methods](https://mtkruto.deno.dev/methods) and [types](https://mtkruto.deno.dev/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
```ts
const { Client, getRandomId } = require("@mtkruto/node"); // npm install @mtkruto/nodeconst 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://esm.sh/jsr/@mtkruto/mtkruto";
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/mtkruto"; // bunx jsr i @mtkruto/mtkrutoconst 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.