Rust é unha linguaxe de programación de propósito xeral que resalta rendemento, seguridade de tipos e concorrencia. Aplica seguridade da memoria, o que significa que todas as referencias que apuntan a memoria válida. Faino sen un colector de lixo convencional; en vez diso, erros de seguridade da memoria e condicións de carreira en acceso a datos son evitados polo "borrow checker", que rastrexa a duración dos obxectos das referencias en tempo de compilación.

Rust soporta múltiples paradigmas de programación. Foi influído por ideas dende programación funcional, incluíndo inmutabilidade, funcións de orde superior, tipos de datos alxébricos, e "pattern matching". Tamén soporta programación orientada a obxectos vía structs, enums, traits, e métodos.

O desenvolvedor de software Graydon Hoare creou Rust como proxecto persoal mentres traballaba en Mozilla Research en 2006. Mozilla oficialmente patrocinou o proxecto en 2009. A primeira liberación estábel de Rust, Rust 1.0, foi publicado en maio de 2015. Tras un despido masivo de persoal en Mozilla en agosto de 2020, varias empresas unironse a Mozilla para patrocinar Rust coa creación da Rust Fundation en febreiro de 2021. En decembro de 2022, Rust converteuse na primeira linguaxe ademais de C e ensamblador en ser soportada no desenvolvemento do Linux kernel.

Rust destacou pola súa adopción en moitos proxectos de software, especialmente en servizos web e software de sistema. Foi obxecto de estudo académico e conta cunha comunidade crecente de desenvolvedores.

Historia

2006–2009: primeiros anos dereita|miniatura|Sede da Fundación Mozilla, 650 Castro Street, en Mountain View, California, xuño de 2009 Rust comezou como un proxecto persoal do empregado de Mozilla Graydon Hoare en 2006. Hoare iniciou o proxecto debido á súa frustración cun ascensor avariado no seu edificio de apartamentos. Hoare afirmou que Rust recibiu ese nome polo grupo de fungos de ferruxe que están "sobredeseñados para a supervivencia". Durante o período comprendido entre 2006 e 2009, Rust non se fixo público dentro de Mozilla e foi escrito no tempo libre de Hoare; Hoare empezou falar publicamente da linguaxe cara a 2009, despois de que un pequeno grupo de Mozilla mostrase interese no proxecto. Hoare enfatizou a prioridade de aproveitar boas ideas de linguaxes antigas en lugar de desenvolver novas, citando linguaxes como CLU (1974), BETA (1975), Mesa (1977), NIL (1981), Erlang (1987), Newsqueak (1988), Napier (1988), Hermes (1990), Sather (1990), Alef (1992), e Limbo (1996) como influencias, afirmando que "moitas linguaxes vellas [son] mellores que as novas", e describindo Rust como "tecnoloxía do pasado que vén a salvar o futuro de si mesmo". Un dos primeiros desenvolvedores de Rust, Manish Goregaokar, describiu de xeito similar que Rust se baseaba en “investigación principalmente de varias décadas atrás”.

Durante os anos temperáns, o compilador de Rust foi escrito en aproximadamente 38,000 liñas de OCaml. A versión inicial de Rust incluía características como programación orientada a obxectos explícita mediante unha palabra clave obj

(máis tarde eliminada), e un sistema de "tipos-estados" que permitía seguimento das variables dun tipo xunto cos cambios de estado (por exemplo, de non inicializada a inicializada).

2009–2012: patrocinio de Mozilla Mozilla patrocinou oficialmente o proxecto Rust en 2009. Brendan Eich e outros directivos, intrigados pola posibilidade de empregar Rust para un motor de navegador de web seguro, asignaron enxeñeiros ao proxecto, incluíndo a Patrick Walton, Niko Matsakis, Felix Klock e Manish Goregaokar. Unha sala de conferencias ocupada polos desenvolvedores do proxecto foi bautizada como «the nerd cave», cun cartel colocado fóra da porta.

Durante este período, o traballo trasladouse do compilador inicial en OCaml a un compilador autorreferido, é dicir, escrito en Rust e baseado en LLVM. O sistema de propiedade de Rust tamén estaba en funcionamento cara a 2010. O logotipo de Rust desenvolveuse en 2011 inspirado nun anel dentado de cadea de bicicleta.

O primeiro lanzamento público, Rust 0.1, saíu o 20 de xaneiro de 2012 para Windows, Linux e macOS. A principios da década de 2010 incrementouse a participación de voluntarios de código aberto fóra de Mozilla e fóra dos Estados Unidos. En Mozilla, os directivos acabarían contratando a máis dunha ducia de enxeñeiros para traballar a tempo completo en Rust durante a seguinte década.

2012–2015: Evolución Os anos de 2012 a 2015 estiveron marcados por cambios substanciais no sistema de tipos de Rust, en particular a eliminación do sistema de typestate, a consolidación doutros recursos da linguaxe e a supresión do colector de lixo. A xestión de memoria mediante o sistema de propiedade consolidouse e ampliouse gradualmente para previr erros relacionados coa memoria. En 2013 a funcionalidade do colector de lixo empregábase moi raramente e foi eliminada polo equipo en favor do sistema de propiedade. Outros cambios durante este período incluíron a eliminación das funcións puras—que se declaraban cunha anotación explícita pure

—en marzo de 2013. Así mesmo, suprimiuse a sintaxe especializada para canles e varios tipos de punteiros co obxectivo de simplificar a linguaxe.

A expansión e consolidación de Rust estivo influenciada por desenvolvedores procedentes de C++ (por exemplo, o rendemento de baixo nivel das características), linguaxes de script (por exemplo, Cargo e a xestión de paquetes) e a programación funcional (por exemplo, o desenvolvemento de sistemas de tipos).

Graydon Hoare abandonou o proxecto Rust en 2013. Isto permitiu que evolucionase de xeito orgánico baixo unha estrutura de gobernanza máis federada, cun “equipo núcleo” inicial de seis persoas, arredor de 30–40 desenvolvedores en diversos equipos, e un proceso de Request for Comments (RFC) para novas características da linguaxe engadido en marzo de 2014. O equipo núcleo medrou ata nove persoas en 2016 , con máis de 1600 RFCs propostos.

Segundo Andrew Binstock, escribindo para a revista Dr. Dobb's Journal en xaneiro de 2014, aínda que Rust «era amplamente considerado como unha linguaxe extraordinariamente elegante», a súa adopción ralentizouse porque cambiaba radicalmente dunha versión a outra. Nese momento, o desenvolvemento de Rust centrárase en rematar as funcionalidades da linguaxe e avanzar cara á versión 1.0, de modo que se puidese comezar a garantir compatibilidade cara atrás.

Seis anos despois de que Mozilla patrocinase o seu desenvolvemento, a primeira versión estable, Rust 1.0, publicouse o 15 de maio de 2015. Un ano despois do lanzamento, o compilador de Rust acumulou máis de 1400 contribuíntes e había máis de 5000 bibliotecas de terceiros publicadas no sitio de xestión de paquetes de Rust, Crates.io.

2015–2020: Servo e adopción inicial dereita|miniatura|Primeira páxina de inicio do motor de navegación Servo de Mozilla O desenvolvemento do motor de navegador Servo continuou en paralelo con Rust, financiado conxuntamente por Mozilla e Samsung. Os equipos detrás de ambos proxectos traballaron en estreita colaboración; as novas funcionalidades en Rust foron probadas polo equipo de Servo, e as novas funcionalidades en Servo empregábanse para proporcionar retroalimentación ao equipo de Rust. A primeira versión de Servo lanzouse en 2016. O navegador Firefox incluíu código en Rust dende 2016 (versión 45), pero compoñentes de Servo non apareceron en Firefox ata setembro de 2017 (versión 57) como parte dos proxectos Gecko e Quantum.

Durante os anos posteriores á versión 1.0, mellorouse o ecosistema da cadea de ferramentas de Rust, incluíndo Rustfmt, a integración con contornos de desenvolvemento integrado; un ciclo regular de probas e publicacións do compilador; un código de conduta comunitario; e as discusións da comunidade organizadas mediante IRC.

As primeiras adopciones fóra de Mozilla foron realizadas por proxectos individuais en Samsung, Facebook (agora Meta Platforms), Dropbox e outros, incluíndo Tilde, Inc. (a empresa detrás de ember.js). Amazon Web Services uniuse en 2020. Os enxeñeiros argumentaron que escolleron Rust polas súas prestacións, pola ausencia dun colector de lixo, pola seguridade e pola agradable experiencia de desenvolvemento que ofrece a linguaxe, aínda que recoñecían que era unha aposta arriscada por tratarse dunha tecnoloxía nova. Os desenvolvedores de Amazon citaron un achado de investigadores portugueses que demostraba que o código Rust consome menos enerxía en comparación con código similar escrito en Java e C++, só superado por C.

2020–presente: despidos en Mozilla e Fundación Rust En agosto de 2020, Mozilla despediu a 250 dos seus 1 000 empregados en todo o mundo como parte dunha reestruturación corporativa provocada pola pandemia de COVID-19. O equipo detrás de Servo foi desmantelado. Este acontecemento xerou preocupacións sobre o futuro de Rust debido á superposición entre ambos proxectos. Na semana seguinte, o Rust Core Team recoñeceu o grave impacto destes despedimentos e anunciou que se estaban a elaborar plans para crear unha fundación Rust. O primeiro obxectivo da fundación sería facerse cargo de todas as marcas rexistradas e nomes de dominio, así como asumir a responsabilidade financeira dos seus custos.

O 8 de febreiro de 2021 anunciouse a formación da Rust Foundation polos cinco patrocinadores fundadores: Amazon Web Services, Google, Huawei, Microsoft e Mozilla. A fundación, dirixida por Shane Miller durante os seus primeiros dous anos, ofreceu subvencións de 20.000$ e outro apoio para programadores que traballasen en funcións principais de Rust. Nunha entrada no blog publicada o 6 de abril de 2021, Google anunciou o soporte de Rust no proxecto de código aberto de Android como alternativa a C/C++.

O 22 de novembro de 2021, o Equipo de Moderación, responsable de facer cumprir o código de conduta da comunidade, anunciou a súa renuncia “en protesta de que o Equipo Núcleo se poñese sen rendición de contas ante ninguén máis que ante eles mesmos”. En maio de 2022, o Equipo Núcleo de Rust, outros programadores líderes e certos membros da xunta da Rust Foundation implementaron reformas de gobernanza en resposta a este incidente.

A Rust Foundation publicou o 6 de abril de 2023 un borrador dunha nova política de marcas rexistradas, que incluía regras sobre como se pode empregar o logotipo e o nome de Rust, o que provocou reaccións negativas por parte de usuarios e colaboradores de Rust.

O 26 de febreiro de 2024, a Casa Branca dos Estados Unidos, a través da Oficina do Director Nacional de Ciberseguridade, publicou un informe de prensa de 19 páxinas instando ao desenvolvemento de software a afastarse de C e C++ e fomentando o uso de linguaxes seguras para a memoria como C#, Go, Java, Ruby, Swift e Rust. O informe foi interpretado como un impulso ao interese por Rust.

Sintaxe e características

A sintaxe de Rust é semellante á de C e C++; aínda que moitas das súas características foron influenciadas por linguaxes de programación funcional como OCaml. Hoare describiu Rust como dirixido a programadores frustrados de C++ e enfatizou características como a seguridade, o control do deseño da memoria e a concorrencia. A seguridade en Rust inclúe as garantías de seguridade de memoria, seguridade de tipos e a ausencia de condicións de carreira de datos.

Programa Ola Mundo Embaixo tes un programa “Ola mundo” en Rust. A palabra clave fn indica unha función, e a macro println! imprime a mensaxe na saída estándar. As instrucións en Rust sepáranse por punto e coma.fn main() { println!("Ola, Mundo!"); }

Variables As variables en Rust defínense mediante a palabra clave let. O seguinte exemplo asigna un valor á variable chamada foo e amosa o seu valor.fn main() { let foo = 10; println!("O valor de foo é {foo}");