48 lines
1.5 KiB
Markdown
48 lines
1.5 KiB
Markdown
# @mtcute/core
|
|
|
|
📖 [API Reference](https://ref.mtcute.dev/modules/_mtcute_core.html)
|
|
|
|
Platform-agnostic MTProto implementation and auxiliary utilities.
|
|
|
|
## Features
|
|
- **MTProto 2.0**: Implements the full MTProto protocol, including all the encryption and serialization
|
|
- **2FA support**: Provides utilities for 2-step verification
|
|
- **Hackable**: Bring your own storage, transport, and other components to customize the library to your needs
|
|
- **Magical**: Handles reconnections, connection pooling, DC redirections and other stuff for you
|
|
- **Updates handling**: Implements proper updates handling, including ordering and gap recovery (learn more)
|
|
- **High-level**: Includes a high-level API that wrap the MTProto APIs and provide a clean interface
|
|
- **Tree-shaking**: You can import just the methods you need, and the rest will not be included into the bundle
|
|
|
|
## Usage
|
|
|
|
```ts
|
|
import { BaseTelegramClient } from '@mtcute/core/client.js'
|
|
|
|
const tg = new BaseTelegramClient({
|
|
apiId: 12345,
|
|
apiHash: '0123456789abcdef0123456789abcdef',
|
|
crypto: new MyCryptoProvider(),
|
|
storage: new MyStorage(),
|
|
transport: () => new MyTransport(),
|
|
})
|
|
|
|
tg.call({ _: 'help.getConfig' })
|
|
.then(console.log)
|
|
```
|
|
|
|
## Usage with high-level API
|
|
|
|
```ts
|
|
import { TelegramClient } from '@mtcute/core/client.js'
|
|
|
|
const tg = new TelegramClient({
|
|
// ... same options as above
|
|
})
|
|
|
|
const self = await tg.start({
|
|
phone: '+1234567890',
|
|
code: () => prompt('Enter the code:'),
|
|
password: 'my-password',
|
|
})
|
|
console.log(`✨ logged in as ${self.displayName}`)
|
|
```
|