Segundo o Google, o Projeto Chromium suportará o uso de bibliotecas Rust. Confira os detalhes dessa importante mudança.
O Google recentemente deu a notícia de que a equipe por trás do projeto Chromium está trabalhando para adicionar uma cadeia de ferramentas Rust de produção ao seu sistema de construção.
Projeto Chromium suportará o uso de bibliotecas Rust
Para quem ainda não conhece o Rust, deve se lembrar bem porque essa linguagem de programação, que foi desenvolvida pela Mozilla especificamente para ser usada na escrita de um navegador, começou a se infiltrar e ser aceita em muitos projetos importantes, um deles o Rust Kernel Linux.
“Isso nos permitirá incluir o código Rust no binário do Chrome no próximo ano. O objetivo é começar pequeno e definir expectativas claras sobre quais bibliotecas serão consideradas quando estiverem prontas.”
Portanto, é lógico que o Chromium está finalmente começando a implantar essa tecnologia também.
Para o Google, a introdução do Rust no Chromium cumprirá o objetivo de proporcionar uma maneira mais fácil e segura de cumprir a regra dos dois, que é acelerar o desenvolvimento e melhorar a segurança do Chrome, além de melhorar a segurança, removendo erros de memória e reduzindo a densidade de erros no código.
“Sabemos que C++ e Rust podem funcionar muito bem juntos, graças a ferramentas como cxx, autocxx bindgen, cbindgen, diplomat e (experimental) crubit. No entanto, também existem limitações. Podemos esperar que a forma dessas limitações mude ao longo do tempo com ferramentas novas ou aprimoradas, mas as decisões e descrições aqui são baseadas no estado atual da tecnologia.”
A decisão foi tomada como parte de um esforço para evitar que bugs de falta de memória apareçam na base de código do Chrome. De acordo com as estatísticas fornecidas há dois anos, 70% dos problemas de segurança críticos e perigosos no Chromium são devidos a erros de memória.
O uso da linguagem Rust, que se concentra no gerenciamento seguro de memória e fornece gerenciamento automático de memória, reduzirá o risco de vulnerabilidades causadas por problemas como acesso a uma área de memória depois de liberada e estouro de buffer.
“O objetivo de trazer o Rust para o Chromium é fornecer uma maneira mais fácil (sem IPC) e mais segura (C++ menos complexo em geral, sem bugs de segurança de memória em sandbox) para satisfazer a regra de dois, a fim de acelerar o desenvolvimento (menos código para escrever , menos documentos de design, menos patches de segurança) e para melhorar a segurança (mais linhas de código sem bugs de segurança na memória, menor densidade de bugs de código) do Chrome. Além disso, a empresa está confiante de que podemos usar bibliotecas Rust de terceiros para atingir esse objetivo.”
No início de 2022, a equipe do Chromium já havia experimentado o Rust e, após alguns meses, chegou à conclusão de que a linguagem inicialmente não é adequada como um substituto do C++ para tarefas complexas com código assíncrono que precisa funcionar em conjunto com o código existente.
Portanto, o uso planejado de Rust no Chromium é claramente limitado no início. Por um lado, a interoperabilidade seguirá apenas um caminho: de C++ para Rust. Por outro lado, inicialmente é permitido apenas o uso de bibliotecas de terceiros. Eles funcionam como componentes autônomos e são independentes dos componentes internos do Chromium. As bibliotecas devem ter uma API simples para sua tarefa específica. A equipe do Chromium examinará as bibliotecas.
Por fim, vale a pena mencionar que, como tal, adicionar suporte no Chromium permitirá que o código Rust seja portado para binários do Chrome a partir do próximo ano. A decisão analisa principalmente a questão da segurança: Rust oferece maior segurança ao gravar na memória do que C++ e proíbe comportamentos potencialmente prejudiciais, como ler variáveis não escritas, acessar além dos limites definidos por arrays, desreferenciar ponteiros nulos ou inválidos, o uso de iteradores substituídos .