About this project
TDengine is an open-source time-series database (TSDB) positioned for Internet of Things, connected-car and Industrial IoT workloads. Its stated goal is real-time ingestion, processing and analysis of large volumes of data produced by many sensors and collectors, with the repository describing support for high-cardinality deployments covering large numbers of collection points.
Design characteristics listed by the project include a distributed, cloud-native architecture with sharding and partitioning, separation of compute and storage, RAFT-based replication, Kubernetes deployment support and observability integration. Rather than requiring separate components for caching, stream processing and subscriptions, TDengine bundles those capabilities into the database itself. An AI component named TDgpt is included for time-series tasks such as forecasting, anomaly detection, imputation and classification, and can connect to time-series foundation models, large language models, machine learning models and traditional algorithms.
Documentation for users, system design and architecture lives on the project's documentation site, with deployment options covering containers, installation packages, Kubernetes, or a hosted cloud service. The repository README is oriented toward developers who want to build, test, release and package TDengine from source.
Build prerequisites: Linux (Ubuntu 18.04+, CentOS 7+), macOS 10.15+, and limited Windows support, on x86_64 or ARM64, with roughly 4 GB RAM and 2 GB free disk recommended. Tooling needs a C/C++ toolchain, CMake 3.21 or newer, git, optionally Python 3 for the test framework and Go 1.23+ for components such as taosAdapter or taosKeeper, plus optional ccache and Conan 2.x for the taos-gen component.
Building is done out-of-tree with CMake. The first build must enable -DBUILD_CONTRIB=ON so external dependencies such as xxhash, zstd and lz4 are fetched and compiled into .externals/; later builds reuse those artifacts. A typical sequence is to clone the repository, create a debug directory, run cmake, then make. A release build with command-line tools uses -DCMAKE_BUILD_TYPE=Release and -DBUILD_TOOLS=ON.
The README documents an extensive option table with defaults, including BUILD_TEST, BUILD_TOOLS, BUILD_SANITIZER, BUILD_COVERAGE, BUILD_JEMALLOC, BUILD_WEBSOCKET, BUILD_WITH_UDF, BUILD_GEOS, RUST_BINDINGS, storage-engine choices (LevelDB, RocksDB, SQLite, Berkeley DB), compression options (LZ4, LZMA2, TSZ) and cloud-object options (S3, COS), among many others. Build artifacts land in debug/build/bin (for example the taosd server daemon, the taos CLI client, and with BUILD_TOOLS=ON the taosBenchmark benchmark tool and taosdump import/export tool) and debug/build/lib (for example libtaos.so on Linux).
Testing has two layers: unit tests built with googletest and executed through ctest, and a Python-based integration test framework under tests/, where a test server is started with a generated configuration and individual system tests are run by script. Coverage reporting can be generated locally using lcov-based scripts, and the project links to a public coverage dashboard.
Packaging is handled by source/taos-community/packaging/pack_community_tar.sh, which assembles community tarballs containing taosd, taos, taosBenchmark, taosdump, taosudf, libtaos.so, libtaosnative.so, headers, C examples and install scripts. Components that live in other repositories or need separate build flows, such as taoskeeper, taos-explorer, taosx, connectors and taosinspect, are explicitly not included. The script accepts flags for build directory, version number, compatible version and release stability, and writes output to source/taos-community/release/ with separate server and client archives.
Installation can be done from an official installer tarball by extracting it and running install.sh, or directly from a local source build via make install. Running locally in a build tree is done by starting taosd with a configuration directory and then connecting with the taos CLI in another shell; after a packaged install, the server is started through systemctl and the taos client is used to connect.
The project publishes a build-check GitHub Actions workflow and points contributors to contribution guidelines. It also provides community channels on Discord, Stack Overflow and social platforms, and links to a hosted cloud offering. TDengine is licensed under the GNU Affero General Public License 3.0, with core modules including cluster features and the AI agent described as available under open-source licenses.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.