# Rust

## 📁 **Preparando os Arquivos**

Antes de fazer upload do seu projeto, você deve **excluir arquivos desnecessários** para otimizar o deploy.

#### ❌ **Arquivos a Excluir**

Certifique-se de que os seguintes arquivos e diretórios **não** sejam incluídos no seu [`.zip`](/faq/general-questions/em-andamento-como-comprimir.md):

```diff
- Cargo.lock
- target/
- git
```

📌 **Use um arquivo** [**`.discloudignore`**](/configurations/.discloudignore.md) **para excluir automaticamente esses arquivos.**

🔗 **Precisa de ajuda para configurar seu** [**`Cargo.toml`**](/development-environment/supported-languages/rust/cargo.toml.md) **ou encontrar o** [**arquivo principal**](/faq/general-questions/what-is-the-main-file.md)**?**

***

## 🌐 Hospedando Seu Site com Rocket

Antes de fazer deploy do seu website ou API na Discloud, certifique-se de que você atenda aos seguintes **requisitos**:

{% hint style="success" %}
[Plano Platinum ou superior](https://discloud.com/plans) é necessário para hospedar websites ou APIs.
{% endhint %}

{% hint style="success" %}
[Um subdomínio deve ser criado](/faq/general-questions/how-to-create-a-subdomain.md) antes do deploy.
{% endhint %}

{% hint style="success" %}
Use a versão nightly do Rust (Rocket requer nightly).
{% endhint %}

{% hint style="danger" %}
Porta `8080` é obrigatória – As aplicações devem escutar nesta porta.
{% endhint %}

***

## 🚀 Configurando `Rocket`

[Rocket](https://rocket.rs/) é um framework web para Rust que requer a versão nightly do Rust. Para configurar e fazer deploy de um projeto Rocket na Discloud, siga estes passos:

{% stepper %}
{% step %}
Defina a Versão Nightly do Rust.

Execute o seguinte comando no terminal para garantir que seu projeto esteja usando a versão nightly:

```bash
rustup override set nightly
```

{% endstep %}

{% step %}
Crie o Arquivo `rust-toolchain.toml`.

Para garantir que a versão nightly do Rust seja usada, crie um arquivo chamado `rust-toolchain.toml` no diretório raiz do projeto com o seguinte conteúdo:

{% code title="rust-toolchain.toml" %}

```ini
[toolchain]
channel = "nightly"
```

{% endcode %}

Este arquivo informa ao rustup para usar a versão nightly do Rust.
{% endstep %}
{% endstepper %}

***

## ✍️ Fazendo Deploy **da Sua Aplicação**

Uma vez que seu projeto esteja **configurado e comprimido**, você pode escolher um dos seguintes **métodos de deploy** na Discloud:

<table data-card-size="large" data-view="cards"><thead><tr><th data-card-target data-type="content-ref"></th><th align="center"></th><th data-hidden></th><th data-hidden></th><th data-hidden></th></tr></thead><tbody><tr><td><a href="/pages/gyLTDC3NWtsMknEHcWxx">/pages/gyLTDC3NWtsMknEHcWxx</a></td><td align="center">Faça upload e gerencie sua aplicação via interface web.</td><td></td><td></td><td></td></tr><tr><td><a href="/pages/sfhuXNqcGUVyC5u28vIW">/pages/sfhuXNqcGUVyC5u28vIW</a></td><td align="center">Faça deploy diretamente através dos comandos do bot Discord da Discloud.</td><td></td><td></td><td></td></tr><tr><td><a href="/pages/dIqZSff6Nr6XG9y5RKh1">/pages/dIqZSff6Nr6XG9y5RKh1</a></td><td align="center">Integre com VS Code para gerenciamento contínuo de projetos.</td><td></td><td></td><td></td></tr><tr><td><a href="/pages/F5SnInQWQ6gy9Abb6OzU">/pages/F5SnInQWQ6gy9Abb6OzU</a></td><td align="center">Use a interface de linha de comando para deploy rápido e eficiente.</td><td></td><td></td><td></td></tr></tbody></table>


---

# Agent Instructions: 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:

```
GET https://docs.discloud.com/development-environment/supported-languages/rust.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
