index.mdx 6.3 KB
Newer Older
1 2 3 4 5 6
---
title: Connector
---

TDengine provides a rich set of APIs (application development interface). To facilitate users to develop their applications quickly, TDengine supports connectors for multiple programming languages, including official connectors for C/C++, Java, Python, Go, Node.js, C#, and Rust. These connectors support connecting to TDengine clusters using both native interfaces (taosc) and REST interfaces (not supported in a few languages yet). Community developers have also contributed several unofficial connectors, such as the ADO.NET connector, the Lua connector, and the PHP connector.

D
dingbo 已提交
7
![TDengine Database image-connector](./connector.webp)
8 9 10

## Supported platforms

D
danielclow 已提交
11
Currently, TDengine's native interface connectors can support platforms such as x64 and ARM hardware platforms and Linux and Windows development environments. The comparison matrix is as follows.
12

D
danielclow 已提交
13 14 15 16 17
| **CPU**        | **OS**    | **Java** | **Python** | **Go** | **Node.js** | **C#** | **Rust** | C/C++ |
| -------------- | --------- | -------- | ---------- | ------ | ----------- | ------ | -------- | ----- |
| **X86 64bit**  | **Linux** | ●        | ●          | ●      | ●           | ●      | ●        | ●     |
| **X86 64bit**  | **Win64** | ●        | ●          | ●      | ●           | ●      | ●        | ●     |
| **ARM64**      | **Linux** | ●        | ●          | ●      | ●           | ○      | ○        | ●     |
18 19 20 21 22 23 24 25 26 27 28

Where ● means the official test verification passed, ○ means the unofficial test verification passed, -- means no assurance.

Using REST connection can support a broader range of operating systems as it does not rely on client drivers.

## Version support

TDengine version updates often add new features, and the connector versions in the list are the best-fit versions of the connector.

| **TDengine Versions** | **Java** | **Python** | **Go** | **C#** | **Node.js** | **Rust** |
| --------------------- | -------- | ---------- | ------------ | ------------- | --------------- | -------- |
D
danielclow 已提交
29
| **3.0.0.0 and later**    | 3.0.0    | current version   | 3.0 branch     | 3.0.0         | 3.0.0           | current version |
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| **2.4.0.14 and up** | 2.0.38 | current version | develop branch | 1.0.2 - 1.0.6 | 2.0.10 - 2.0.12 | current version |
| **2.4.0.6 and up** | 2.0.37 | current version | develop branch | 1.0.2 - 1.0.6 | 2.0.10 - 2.0.12 | current version |
| **2.4.0.4 - 2.4.0.5** | 2.0.37 | current version | develop branch | 1.0.2 - 1.0.6 | 2.0.10 - 2.0.12 | current version |
| **2.2.x.x ** | 2.0.36 | current version | master branch | n/a | 2.0.7 - 2.0.9 | current version |
| **2.0.x.x ** | 2.0.34 | current version | master branch | n/a | 2.0.1 - 2.0.6 | current version |

## Functional Features

Comparing the connector support for TDengine functional features as follows.

### Using the native interface (taosc)

| **Functional Features** | **Java** | **Python** | **Go** | **C#** | **Node.js** | **Rust** |
| -------------- | -------- | ---------- | ------ | ------ | ----------- | -------- |
| **Connection Management** | Support | Support | Support | Support | Support | Support |
| **Regular Query** | Support | Support | Support | Support | Support | Support |
| **Parameter Binding** | Support | Support | Support | Support | Support | Support |
D
danielclow 已提交
47
| ** TMQ **      | Support     | Support       | Support   | Support   | Support        | Support     |
48 49 50 51 52 53 54
| **Schemaless** | Support | Support | Support | Support | Support | Support |
| **DataFrame** | Not Supported | Support | Not Supported | Not Supported | Not Supported | Not Supported |

:::info
The different database framework specifications for various programming languages do not mean that all C/C++ interfaces need a wrapper.
:::

D
danielclow 已提交
55
### Use HTTP Interfaces (REST or WebSocket)
56 57 58 59 60 61

| **Functional Features** | **Java** | **Python** | **Go** | **C# (not supported yet)** | **Node.js** | **Rust** |
| ------------------------------ | -------- | ---------- | -------- | ------------------ | ----------- | -------- |
| **Connection Management** | Support | Support | Support | N/A | Support | Support |
| **Regular Query** | Support | Support | Support | N/A | Support | Support |
| **Continous Query ** | Support | Support | Support | N/A | Support | Support |
D
danielclow 已提交
62 63 64 65
| **Parameter Binding**                   | Not supported   | Not supported   | Not supported | N/A                | Not supported      | Support     |
| ** TMQ **                      | Not supported   | Not supported   | Not supported | N/A                | Not supported      | Support     |
| **Schemaless**                 | Not supported | Not supported   | Not supported | N/A                | Not supported      | Not supported |
| **Bulk Pulling (based on WebSocket) **| Support | Support | Not Supported | N/A | Not Supported | Supported |
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| **DataFrame** | Not supported | Support | Not supported | N/A | Not supported | Not supported |

:::warning

- Regardless of the programming language chosen for the connector, TDengine versions 2.0 and above recommend that each thread of a database application create a separate connection. Or create a connection pool based on threads to avoid interference between threads with the "USE statement" state within a connection (but the connection's query and write operations are thread-safe).

:::

import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";
import InstallOnWindows from "./_linux_install.mdx";
import InstallOnLinux from "./_windows_install.mdx";
import VerifyWindows from "./_verify_windows.mdx";
import VerifyLinux from "./_verify_linux.mdx";

## Install Client Driver

:::info
The client driver needs to be installed if you use the native interface connector on a system that does not have the TDengine server software installed.

:::

D
danielclow 已提交
88
### Install
89 90 91 92 93 94 95 96 97 98

<Tabs defaultValue="linux" groupId="os">
  <TabItem value="linux" label="Linux">
    <InstallOnWindows />
  </TabItem>
  <TabItem value="windows" label="Windows">
    <InstallOnLinux />
  </TabItem>
</Tabs>

D
danielclow 已提交
99
### Verify
100 101 102 103 104 105 106 107 108 109 110 111

After completing the above installation and configuration and you have confirmed that the TDengine service is up and running, you can execute the TDengine CLI tool to log in.

<Tabs defaultValue="linux" groupId="os">
  <TabItem value="linux" label="Linux">
    <VerifyLinux />
  </TabItem>
  <TabItem value="windows" label="Windows">
    <VerifyWindows />
  </TabItem>
</Tabs>