Prebuilt TDLib
This package distributes pre-built TDLib shared libraries through npm.
The libraries are built on GitHub Actions: prebuilt-tdlib.yml.
The shared libraries are statically linked against OpenSSL and zlib to prevent
compatibility issues in Node.js.
Supported systems:
- GNU/Linux x86_64 (requires glibc >= 2.17)
- macOS x86_64, arm64 (universal, requires macOS >= 10.14)
- Windows x86_64
To install prebuilt-tdlib
for e.g. TDLib v1.8.14, run:
$ npm install prebuilt-tdlib@td-1.8.14
prebuilt-tdlib
can be installed for other TDLib versions, run
$ npm info prebuilt-tdlib dist-tags
to get the list of available versions
(or see the "npm tags" section below).
Note: Before prebuilt-tdlib@td-1.8.14
, the Linux binary was built on
Ubuntu 20.04 requiring glibc >= 2.31, and macOS arm64 was not supported.
Currently, the Linux build environment is based on CentOS 7.
The macOS arm64 binary isn't tested in the CI.
Usage
The prebuilt-tdlib
package exports a single function getTdjson
, which
returns the path to the tdjson
shared library.
const { getTdjson } = require('prebuilt-tdlib')
console.log(getTdjson())
This package can be used with, for example, tdl
. You can pass the
path to tdl.configure
(since tdl v7.3.0):
const tdl = require('tdl')
const { getTdjson } = require('prebuilt-tdlib')
tdl.configure({ tdjson: getTdjson() })
Versioning conventions
Note: This information is mostly for maintaining prebuilt-tdlib
, it
isn't necessary for using this package.
Because TDLib does not follow SemVer, not to require the users to manually
specify the exact version of prebuilt-tdlib
in their package.json
, the TDLib
version is packed into a single minor version.
prebuilt-tdlib
is published to npm under versions 0.xyyyzzz.v
, where
x
, y
, z
correspond to the x.y.z
TDLib version (e.g., 1.8.0). The
leading zeros are appended to y
and z
(y=8
becomes y=008
).v
corresponds to the version of prebuilt-tdlib
itself, these updates can
contain fixes in case some of the builds were broken or include new pre-built
libraries for other platforms.- The major version is always
0
.
Example: the npm release for TDLib v1.8.5
is 0.1008005.0
.
For convenience, td-X
dist-tags are available. To install prebuilt-tdlib
for
TDLib v1.8.5, just run npm install prebuilt-tdlib@td-1.8.5
, or
npm install prebuilt-tdlib@td-1.8.0
for TDLib v1.8.0. This will automatically
install the needed version of prebuilt-tdlib
.
Additionaly, TDLib's versioning is weird, and some of the prebuilt-tdlib
releases are not connected to a specific tag release in the TDLib repository.
The releases of the prebuilt-tdlib
npm package are not git-tagged.
npm tags