Cross platform TDLib wrapper
- Fast.
TDLibis a fastest way to interact with Telegram on NodeJS. It's written in C++ with optimized network stack and caching. - Better DX. Easy, well documented API. Instant type completion
/** * Sends a message. Returns the sent message * * @throws {TDError} * @param {sendMessage$DirectInput} parameters {@link sendMessage$Input} * @returns {Promise<Message>} Promise<{@link Message}> */asyncsendMessage(parameters: sendMessage$DirectInput): Promise<Message>
- Secure.
- Only 3 dependencies:
node-addon-api,debug,detect-libc - Built on CI with provenance
- Only 3 dependencies:
- Multi-Platform. Supported platforms:
- Linux: x64, arm64 (glibc, musl)
- Android: arm64 (glibc, musl)
- MacOS: x64, Apple Silicon (arm64)
- Windows: x64, x32
- Using
npmnpm i tdlib-native
- Using
Yarnyarn add tdlib-native
- Using
pnpmpnpm add tdlib-native
- Made builds for linux arm64
- Made builds for musl libc
- Made builds for windows x32 (since tg desktop supports it)
- Fixed client thread safety, fixed disposal of tdlib clients
- Made
client.start(),client.pause()andclient.destroy()- async - Upgraded TDLib to 1.8.37
This is raw wrapper of TDLib
import{Client,Authenticator}from"tdlib-native";import{TDLibAddon}from"tdlib-native/addon";asyncfunctioninit(){// Loading addonconstadapter=awaitTDLibAddon.create();// Make TDLib shut up. ImmediatelyClient.disableLogs(adapter);constclient=newClient(adapter);constauthenticator=Authenticator.create(client).tdlibParameters({/* options */}).token(process.env.TELEGRAM_BOT_TOKEN);// Start polling responses from TDLib// And authenticate bot// THIS SHOULD BE USED via Promise.all// OR ELSE .authenticate() skips an update and hangsawaitPromise.all([client.start(),authenticator.authenticate()]);// client authorized as bot// Call any tdlib methodawaitclient.api.getOption({name: "version"});// => Promise { _: "optionValueString", value: "1.8.37" }// or use a wrapperawaitclient.tdlibOptions.get("version");// => Promise "1.8.22"// Subscribe to updatesclient.updates.subscribe(console.log);// Pause receiving updates. Will freeze method all running API calls// await client.pause();// Resume pause// await client.start();// Destroyawaitclient.api.close({});awaitclient.destroy();}Usage with RxJS
// Observable will complete after client.destroy() callconstupdates=newObservable(client.updates.toRxObserver());GuardCore Bot | Твоя Статья УК РФ | Add your project |
This package is based on eilvelia/tdl
Licenses:
- C++ addon - MIT
- Ci pipeline - Blue Oak Model License 1.0.0