O projeto Chromium suportará o uso de bibliotecas Rust

crômio

, o projeto Chromium oferecerá suporte ao uso de bibliotecas C++ Rust de terceiros no Chromium

Google revelado notícias recentemente que a equipe por trás do projeto Chromium está trabalhando para adicionar uma cadeia de ferramentas Rust da produção ao seu sistema de construção.

Para quem ainda não conhece o Rust, deve se lembrar bem, pois 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, sendo 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 uma iniciativa para evitar que erros 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 foca no gerenciamento seguro da 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 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, depois de alguns meses, chegou à conclusão que a linguagem é inicialmente inadequada como uma substituição C++ para tarefas complexas com código assíncrono que deve funcionar junto 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 ressaltar que, como tal, adicionar suporte no Chromium permitirá que o código Rust seja portado para binários do Chrome começando no 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 .

Se você estiver interessado em saber mais sobre isso, você pode consultar os detalhes no link a seguir.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.