# 建立连接

import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";
import ConnRest from "./_connect_restful.mdx";
import ConnJava from "./_connect_java.mdx";
import ConnGo from "./_connect_go.mdx";
import ConnRust from "./_connect_rust.mdx";
import ConnNode from "./_connect_node.mdx";
import ConnJavaNative from "./_connect_java_native.mdx";
import ConnPythonNative from "./_connect_python_native.mdx";
import ConnGoNative from "./_connect_go_native.mdx";
import ConnRustNative from "./_connect_rust_native.mdx";
import ConnNodeNative from "./_connect_node_native.mdx";
import ConnCSNative from "./_connect_cs_native.mdx";
import ConnC from "./_connect_c.mdx";

## 连接器介绍

TDengine 提供了丰富的应用程序开发接口，其中包括 C/C++、Java、Python、Go、Node.js、C# 、RESTful 等，便于用户快速开发应用。

![image-connecotr](/img/connector.png)

<center>(图：连接器工作原理)</center>

TDengine 提供了 RESTful 接口，应用程序无需安装任何依赖，只需发送 HTTP 请求就可以连接到 TDengine。同时也提供了各语言的连接器，使用驱动程序 (taosc) 连接 TDengine。通过驱动程序可以使用 TDengine 更丰富的功能。

## 前提条件

在执行这一步之前，请确保有一个正在运行的，且可以访问到的 TDengine。以下所有示例代码，都假设 TDengine 安装在本机，且 fqdn（默认 localhost） 和 serverPort（默认 6030） 都使用默认配置。

## 建立连接

### RESTful

如果你安装的是 TDengine 2.4 之后的版本，使用 RESTful 方式连接时还需启动 taosAdaper。

<Tabs groupId="lang">
  <TabItem label="curl" value="">
    <ConnRest />
  </TabItem>
  <TabItem label="Java" value="java">
    <ConnJava />
  </TabItem>
  <TabItem label="Go" value="go">
    <ConnGo />
  </TabItem>
  <TabItem label="Rust" value="rust">
    <ConnRust />
  </TabItem>
  <TabItem label="Node.js" value="node">
    <ConnNode />
  </TabItem>
</Tabs>

### 本地驱动

在没有安装 TDengine 服务端软件的系统上使用本地驱动连接 TDengine, 需要提前[安装客户端驱动程序](/reference/connector/#安装客户端驱动)。
:::note
需要单独安装客户端时，为避免客户端驱动和服务端不兼容，请尽量使用一致的版本。

:::

<Tabs groupId="lang" defaultValue="java">
  <TabItem label="Java" value="java">
    <ConnJavaNative />
  </TabItem>
  <TabItem label="Python" value="python">
    <ConnPythonNative />
  </TabItem>
  <TabItem label="Go" value="go">
    <ConnGoNative />
  </TabItem>
  <TabItem label="Rust" value="rust">
    <ConnRustNative />
  </TabItem>
  <TabItem label="Node.js" value="node">
    <ConnNodeNative />
  </TabItem>
  <TabItem label="C#" value="csharp">
    <ConnCSNative />
  </TabItem>
  <TabItem label="C" value="c">
    <ConnC />
  </TabItem>
</Tabs>
