Você está na página 1de 8

RUST

O Rust chegou ao kernel do Linux e tem ganhado cada vez mais


espaço em grandes projetos de software livre. Vejamos alguns
detalhes da história dessa linguagem de programação que há anos é
apontada como a preferida pelos desenvolvedores.

A linguagem Rust e o kernel Linux

A maioria de vocês deve saber que uma linguagem de programação é


uma forma de escrever o código dos softwares e que Linux é um
kernel, a parte central de todo sistema operacional ou distribuição que
gerencia a comunicação com cada parte do hardware dos dispositivos.

O próprio Linux é escrito em várias linguagens:

Linguagem % de participação no código


C 98,5%
Assembly 0,8%
Shell 0,3%
Makefile 0,2%
Python 0,1%
Perl 0.1%
Rust <0.1%
O principal desenvolvedor do Linux é Linus Torvalds, mas, há mais de
13 mil contribuintes ao código. Como você vê na tabela, ele é
basicamente escrito na linguagem C, que surgiu no início dos anos 70.

Com o avanço da tecnologia, um dos pontos fracos da linguagem C foi


ficando evidente: o modo como é feito o gerenciamento da memória
(RAM) que, consequentemente, abriu brechas para potenciais falhas
de segurança.
Por que abrir espaço para o Rust no kernel?

A linguagem C, 50 anos após ter sido lançada, não contém em si o


poder de evitar vulnerabilidades na gestão da memória e, por estar
presente em muitíssimos servidores, é alvo de organizações
criminosas que desejam invadir e roubar dados de empresas por todo
o mundo.

Segundo Mark Russinovich, Chief Tecnology Officer (CTO) do Azure na


Microsoft, afirmou que cerca de 70% das falhas de segurança que
geram alertas (os conhecidos CVE) são ocasionadas pelo mau
gerenciamento de memória e o Rust faria com que a maioria delas
(70%) simplesmente deixasse de existir.

Ele promete ser uma solução para acomodar novas tecnologias e


segurança dentro do kernel, da mesma forma como foi feita uma
tentativa anos atrás de incorporar o C++, que acabou não
prosperando. Ele é extremamente rápido, integra-se facilmente a
outras linguagens, e gerencia eficientemente a memória
(sem runtime nem garbage collector) melhorando o desempenho de
serviços críticos.

A popularidade do Rust

O Rust começou a ser desenvolvido por um funcionário da Mozilla,


Graydon Hoare, e a empresa começou a apoiar o projeto em 2009.
Projetado para ser seguro, versátil, prático e confiável, a primeira
versão estável do Rust foi lançada em 2015.

Todos os anos, o site Stack Overflow faz uma pesquisa para saber


quais são as linguagens mais utilizadas pelos desenvolvedores. Pelo
sétimo ano consecutivo, ele aparece como o “queridinho” de 87% dos
mais de 70 mil desenvolvedores que responderam à seguinte
pergunta:
“Em quais linguagens de programação, script e marcação você fez um
extenso trabalho de desenvolvimento no ano passado e em quais
deseja trabalhar no próximo ano?”
Apenas cerca de 40% dos desenvolvedores preferem programar em C,
considerada por muitos como uma linguagem complexa, ainda que
muito eficiente em cenários específicos. O Rust, por outro lado, é uma
linguagem que se adapta a muitos propósitos e atrai a atenção de
mais desenvolvedores, também pelo volume de oportunidades
profissionais que se abrem para quem sabe programar em Rust.

Projetos desenvolvidos com o Rust

Não basta uma linguagem ser poderosa, é preciso que ela seja
utilizada; além do kernel Linux, ele faz parte de um número crescente
de projetos, como mostra o estudo da RedMonk, que cruza a
popularidade de uma linguagem no Stack Overflow com o número de
projetos onde ela se faz presente no GitHub.
Alguns dos projetos mais populares desenvolvidos em Rust são:
Renderização

•Gecko: o motor de renderização do Firefox (e também o Servo,


ainda sendo testado);
•librsvg: motor de renderização de arquivos svg no GNOME e no
MediaWiki;
•Prime Video: o serviço de streaming de vídeo sob demanda
utiliza ferramentas em Rust via WebAssembly;

Rede

•cURL: utiliza a ferramenta hyper;

•Discord: utiliza Rust em ferramentas nos seus servidores e nos


aplicativos;
•Figma: o editor de desenhos vetoriais para prototipagem de
interfaces gráficas já foi apresentado no nosso blog e usa o Rust
no seu servidor multiplayer;
•Fractal: mensageiro baseado no protocolo Matrix;

•Magic Pocket: o sistema de armazenamento do Dropbox está


escrito em Rust;
•npm Registry: o serviço de hospedagem (e instalação) de
dependências para JavaScript e Node.js;
•OpenDNS: o serviço de DNS usa várias ferramentas em Rust;

•Pingora: o novo proxy da Cloudflare é escrito em Rust e


substitui o nginx;
•Tor: a rede anônima utiliza Rust em alguns componentes.

Sistemas operacionais e componentes

Além do Android e do Linux, que oferecem suporte experimental para


desenvolvimento de drivers e módulos secundários, ele já aparece em
alguns componentes de diversos sistemas operacionais como o
Windows, o Google Fuchsia, o Redox, além do sistema de arquivos
Stratis, utilizado pelo Fedora e RHEL.

O COSMIC, a interface gráfica utilizada pelo Pop!_OS, está sendo


reescrito em Rust a partir do zero pela System76 e utilizará o Iced
como toolkit, um kit de ferramentas para a geração da interface
gráfica que substituirá o atual GTK.

Outros aplicativos e ferramentas

•1Password: gerenciador de senhas;

•Cargo: gerenciador de pacotes da linguagem Rust que baixa as


dependências, compila e instala ferramentas e aplicativos;
também utilizado para criar pacotes de instalação nos formatos
app, deb, msi, rpm e apk.
•ripgrep: ferramenta de linha de comando que substitui o grep e
utilizada pelo Visual Studio Code;
•Starship: prompt de customização para vários shell;

•Topgrade: ferramenta que detecta o que está instalado no seu


sistema e executa automaticamente todas as rotinas para
atualizar tudo, incluindo os pacotes de sistema, os Flatpaks, os
aplicativos em Rust e Python, os contêineres e até o firmware do
seu computador.

Você também pode gostar