Compilador online

Compilador Rust online

Escreva seu código em Rust 1.93 abaixo e rode de graça, com entrada, num sandbox nos nossos servidores. Sem cadastro e sem anúncios.

Pela equipe do OnlineCompiler.io. Atualizado em .

Also in EnglishTambién en español

use std::io;

fn main() {
    // Lê o nome e um número da aba Entrada
    let mut nome = String::new();
    io::stdin().read_line(&mut nome).unwrap();
    let mut linha = String::new();
    io::stdin().read_line(&mut linha).unwrap();
    let n: u32 = linha.trim().parse().unwrap();

    println!("Olá, {}!", nome.trim());
    for i in 1..=n {
        println!("{} ao quadrado é {}", i, i * i);
    }
}
Compartilhar gera um link, sem precisar de conta. Salvar guarda o código na sua conta.

Quer conferir uma solução contra várias entradas? O compilador Rust com casos de teste roda todas de uma vez e marca cada uma como aprovada ou reprovada.

Como dar entrada (stdin)

Antes de apertar Executar, digite na aba Entrada tudo o que o programa vai ler. Ele recebe esse texto pela entrada padrão (stdin). Em Rust, fica assim:

let mut linha = String::new();
io::stdin().read_line(&mut linha).unwrap();   // a próxima linha, com o \n do final
let n: i32 = linha.trim().parse().unwrap();   // essa linha, convertida em número

A entrada inteira é enviada quando você aperta Executar, então o programa não pode pedir mais nada enquanto roda. Coloque cada valor numa linha, ou separe por espaços, conforme o programa lê.

Versão e limites

VersãoRust 1.93
Compilado comrustc -C opt-level=2 -C overflow-checks=on code.rs -o code.out
Executado com./code.out
Limites30 segundos, 512 MB de memória, 2 CPUs, 64 KB de saída por fluxo, sem rede
Execução típica0,92 s, e 1,02 s para a mais lenta em cada 20 (como medimos, em inglês)

Bom saber

  • Compila com rustc -C opt-level=2 e com a verificação de overflow ligada, então um overflow aritmético causa panic, como num build de debug.
  • Não há a opção --edition, então o código compila na edição padrão do rustc, a de 2015. Traits que o prelude de 2021 adiciona, como TryFrom e TryInto, precisam de uma linha use, e async fn não está disponível.
  • io::stdin().read_line lê a próxima linha da aba Entrada. Se o parse() der ParseIntError { kind: Empty }, o programa tentou converter uma linha vazia, em geral porque leu mais linhas do que você digitou lá.
  • Não há Cargo, então nada de crates: só a biblioteca padrão.

Rodar Rust a partir do seu app

Para rodar Rust no seu próprio app, envie o código e a entrada para o endpoint síncrono com uma chave de API, e a saída volta na resposta. É grátis até 100.000 execuções por mês. Documentação da API (em inglês).

O editor acima é um widget que você pode colocar no seu site, blog ou curso. Com o atributo data-locale="pt", os botões aparecem em português. Como incorporar o editor (em inglês).

Outras páginas

Perguntas frequentes

O compilador Rust online é grátis?

Sim. Rodar Rust nesta página não exige conta e não tem anúncios. Para rodar Rust no seu próprio app ou site, a API e o widget são grátis até 100.000 execuções por mês, uso comercial incluído.

Meu programa em Rust pode ler entrada?

Sim. Digite a entrada na aba Entrada antes de executar, e o programa a lê pela entrada padrão (stdin). A entrada inteira é enviada quando você aperta Executar, então o programa não pode pedir mais nada enquanto roda.

Posso usar bibliotecas em Rust?

A biblioteca padrão do Rust. Não há Cargo, então não dá para adicionar crates, e os programas não têm acesso à rede.

Quanto tempo um programa pode rodar?

Até 30 segundos, com 512 MB de memória e 2 CPUs. Um programa que ainda estiver rodando aos 30 segundos é interrompido com o código de saída 124, e a saída acima de 64 KB por fluxo é cortada.

Onde meu código roda?

Nos nossos servidores, num sandbox gVisor novo e sem acesso à rede, que é apagado quando a execução termina. Cada execução fica guardada no histórico com a saída; a página de segurança (em inglês) explica o que é armazenado.

Existe uma API para Rust?

Sim. Envie o código, o id do compilador rust-1.93 e a entrada para https://api.onlinecompiler.io/api/run-code-sync/ com uma chave de API, e a resposta traz a saída, os erros, o código de saída, o tempo e a memória. É grátis até 100.000 execuções por mês, e a mesma chave serve para as outras 45 linguagens. A documentação está em inglês.