ExpertiDict

Rust · Avançado · Inglês · Técnico

no_std

/ˌnoʊ ɛs ˌtiː ˈdiː/substantivo

Atributo de crate que desliga a biblioteca padrão e usa só a core, para sistemas embarcados e kernels. Sem std não há threads nem arquivos; sem alloc, não há heap.

Onde usar

Aparece em firmware, bootloaders e WebAssembly mínimo. Bibliotecas costumam oferecer uma feature std opcional.

Em código

#![no_std]
// só core está disponível, sem std
fn soma(a: &[u32]) -> u32 {
  a.iter().sum()
}
// use alloc se precisar de Vec

Exemplos

This crate is no_std so it runs on the microcontroller.

Essa crate é no_std, então roda no microcontrolador.

Enable the alloc crate for Vec in no_std.

Habilite a crate alloc para ter Vec em no_std.

Cuidado

no_std não proíbe alocação: com a crate alloc e um alocador global, Vec e String continuam disponíveis.

Sinônimos

#![no_std]

Veja também

Todos os termos de Rust