> For the complete documentation index, see [llms.txt](https://toshio.gitbook.io/icp-rust-cdk/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://toshio.gitbook.io/icp-rust-cdk/setup.md).

# 開発環境準備

Internet ComputerのCanister上で動作するDappsを開発するための環境を準備します。

Internet Computerでは、Dappsの開発言語としてMotoko、Rust、JavaScript/TypeScript、Pythonなどいくつかありますが、このドキュメントではRust言語を使って開発する前提で進めていきます。

手順はWSL (Windows Subsystem for Linux)上のUbuntu 24.04 LTSを想定したものですので、ご使用の環境によって違いがある場合は適宜読み替えてください。

## 1. SDKインストール

まず、dfxコマンドなど開発に必要なツールをインストールします。

<https://internetcomputer.org/docs/current/developer-docs/setup/install/>

```bash
$ sh -ci "$(curl -fsSL https://internetcomputer.org/install.sh)"
```

## 2. Rustインストール

このドキュメントでは、Rust言語で開発する想定で説明します。

Rust言語は、[Rust公式サイト](https://www.rust-lang.org/tools/install)を参考にインストールするとよいでしょう。

```bash
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```

セットアップ後はコマンドにパスが通っていないため、一度ターミナルを終了して起動し直すなど必要な場合があります。

rustcコマンドが通っていればOKです。

```bash
$ rustc --version
rustc 1.77.2 (25ef9e3d8 2024-04-09)
```

### wasm

```bash
$ rustup target add wasm32-unknown-unknown
```

## 3. build-essentialインストール

ビルドの際にcmake等が必要となるので、`build-essential`をインストールしておきます。

```bash
$ sudo apt install build-essential
```

## 4. エディタ

Visual Studio Codeなどを利用すると便利かもしれません。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://toshio.gitbook.io/icp-rust-cdk/setup.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
