Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Rust - это многопарадигмальный язык программирования, разработанный для обеспечения производительности и безопасности , особенно безопасного параллелизма . [15] [16] Rust синтаксически похож на C ++ , [17], но может гарантировать безопасность памяти , используя средство проверки заимствований для проверки ссылок . [18] Rust обеспечивает безопасность памяти без сборки мусора , а подсчет ссылок не является обязательным. [19] [20]

Первоначально Rust был разработан Грейдоном Хоаром из Mozilla Research при участии Дэйва Хермана, Брендана Эйха и других. [21] [22] Разработчики усовершенствовали язык при написании макета сервопривода или движка браузера , [23] и компилятора Rust . Он получил все большее распространение в промышленности, и Microsoft экспериментирует с языком для безопасных и критически важных для безопасности программных компонентов. [24] [25]

Rust был признан «самым любимым языком программирования» в опросе разработчиков Stack Overflow ежегодно с 2016 года. [26]

История [ править ]

Некоторые пользователи Rust называют себя Rustaceans (каламбур от « ракообразных ») и используют Феррис в качестве своего неофициального талисмана. [27]

Этот язык вырос из личного проекта, начатого в 2006 году сотрудником Mozilla Грейдоном Хоаром [16], который заявил, что проект, возможно, был назван в честь семейства грибов ржавчины . [28] Mozilla начал спонсировать проект в 2009 году [16] и объявил его в 2010 году [29] [30] В том же году, работа перешла от первоначального компилятора (написано в OCaml ) в LLVM - самостоятельной хостинг компилятора написан в Rust. [31] Названный rustc , он успешно скомпилировался в 2011 году. [32]

Первый пронумерованный пре-альфа-выпуск компилятора Rust состоялся в январе 2012 года. [33] Rust 1.0, первый стабильный выпуск, был выпущен 15 мая 2015 года. [34] [35] После 1.0 стабильные промежуточные выпуски поставляются каждые шесть недель, в то время как функции разрабатываются в ночном Rust, а затем тестируются с бета-версиями, которые длятся шесть недель. [36]

Помимо стандартной статической типизации , до версии 0.4 Rust также поддерживал состояния типов . Система typestate смоделировала утверждения до и после программных операторов с помощью специального checkоператора. Несоответствия можно было обнаружить во время компиляции, а не во время работы программы, как это может быть в случае утверждений в коде C или C ++. Концепция состояния типов не была уникальной для Rust, поскольку она впервые была представлена ​​на языке NIL . [37] Типовые состояния были удалены, потому что на практике они мало использовались, [38] хотя та же функция может быть достигнута за счет использования семантики перемещения Rust. [39]

Стиль объектной системы значительно изменился в версиях 0.2, 0.3 и 0.4 Rust. Версия 0.2 впервые представила классы, а версия 0.3 добавила несколько функций, включая деструкторы и полиморфизм за счет использования интерфейсов. В Rust 0.4 черты были добавлены как средство обеспечения наследования; интерфейсы были объединены с трейтами и удалены как отдельная функция. Классы также были удалены, заменены комбинацией реализаций и структурированных типов. [ необходима цитата ]

Начиная с Rust 0.9 и заканчивая Rust 0.11, Rust имел два встроенных типа указателей: ~и @, упрощая модель основной памяти. Он повторно реализовал эти типы указателей в стандартной библиотеке как Boxи (теперь они удалены) Gc.

В январе 2014 года, перед первым стабильным выпуском Rust 1.0, главный редактор Dr Dobb's Эндрю Бинсток прокомментировал шансы Rust стать конкурентом C ++ и других перспективных языков D , Go , и Ним (затем Нимрод). По словам Бинстока, хотя Rust «широко рассматривался как удивительно элегантный язык», его внедрение замедлилось, поскольку он постоянно менялся между версиями. [40]

Rust имеет интерфейс внешних функций (FFI), который может быть вызван, например, из языка C, и может вызывать C, в то время как вызов C ++ исторически был проблематичным (из любого языка). В Rust есть библиотека CXX, позволяющая вызывать C ++ или из него, и «CXX имеет нулевые или незначительные накладные расходы». [41]

В августе 2020 года Mozilla уволила 250 из 1000 своих сотрудников по всему миру в рамках корпоративной реструктуризации, вызванной долгосрочным воздействием пандемии COVID-19 . [42] [43] Среди уволенных была большая часть команды Rust, [44] а команда Servo была полностью расформирована. [45] Это событие вызвало опасения по поводу будущего Rust. [46]

На следующей неделе команда ядра Rust признала серьезные последствия увольнений и объявила, что планы по созданию фонда Rust находятся в стадии реализации. Первой целью фонда было бы стать владельцем всех товарных знаков и доменных имен, а также взять на себя финансовую ответственность за их расходы. [47]

8 февраля 2021 года пять компаний-учредителей ( AWS , Huawei , Google , Microsoft и Mozilla) официально объявили о создании Rust Foundation . [48] [49]

Синтаксис [ править ]

Вот простое "Hello, World!" программа написана на Rust. println! Макрос выводит сообщение на стандартный вывод .

fn  main () {  println ! ( «Привет, мир!» );}

Конкретный синтаксис ржавчины похож на C и C ++ , с блоками кода , ограниченным фигурными скобками , и управление потоком ключевыми слов , таким как if, else, while, и for, хотя конкретный синтаксис для определения функций больше похож на Pascal . Однако не все ключевые слова C или C ++ реализованы, и некоторые функции Rust (например, использование ключевого слова matchдля сопоставления с образцом ) будут менее знакомы тем, кто разбирается в этих языках. Несмотря на внешнее сходство с C и C ++, синтаксис Rust в более глубоком смысле ближе к синтаксису семейства языков ML иЯзык Haskell . Почти каждая часть тела функции является выражением , [50] операторы потока даже управления. Например, обычное ifвыражение также заменяет тернарное условное выражение языка Си , идиому, используемую АЛГОЛ-60 . Как и в Лиспе , функция не обязательно должна заканчиваться returnвыражением: в этом случае, если точка с запятой опущена, последнее выражение в функции создает возвращаемое значение , как показано в следующей рекурсивной реализации факториальной функции:

fn  факториал ( i : u64 )  -> u64  { match i {   0 => 1 ,   n => n * факториал ( n - 1 )     }}

Следующая итеративная реализация использует ..=оператор для создания включающего диапазона:

fn  факториал ( i : u64 )  -> u64  { ( 2 .. = я ). продукт ()}

Особенности [ править ]

Воспроизвести медиа
Презентация Rust Эмили Данхэм из команды Mozilla по Rust ( конференция linux.conf.au , Хобарт, 2017)

Ржавчина предназначена быть языком для очень одновременно и очень безопасных систем , [51] и программирование в целом , то есть создание и поддержание границ , которые сохраняют целостность большой системы. [52] Это привело к набору функций с упором на безопасность, контроль структуры памяти и параллелизм .

Безопасность памяти [ править ]

Rust разработан для обеспечения безопасности памяти и не допускает нулевых указателей , висячих указателей или гонок данных в безопасном коде. [53] [54] [55] Значения данных могут быть инициализированы только с помощью фиксированного набора форм, каждая из которых требует, чтобы их входные данные были уже инициализированы. [56] Чтобы воспроизвести функцию на других языках указателей, которые либо действительны, либо NULL, например, в связанных списках или структурах данных двоичного дерева , основная библиотека Rust предоставляет тип параметра , который можно использовать для проверки того, имеет ли указатель значение или . [54]SomeNone Rust также вводит дополнительный синтаксис для управления временем жизни , и компилятор решает это с помощью своей программы проверки заимствований . Небезопасный код, который может нарушить некоторые из этих ограничений, может быть написан с использованием unsafeключевого слова языка . [18]

Управление памятью [ править ]

Rust не использует автоматизированную систему сбора мусора . Вместо этого память и другие ресурсы управляются посредством соглашения об инициализации ресурсов (RAII) [57] с дополнительным подсчетом ссылок . Rust обеспечивает детерминированное управление ресурсами с очень низкими накладными расходами . [ необходима цитата ] Rust также поддерживает распределение значений в стеке и не выполняет неявную упаковку .

Существует концепция ссылок (с использованием &символа), которая не включает подсчет ссылок во время выполнения. Безопасность использования таких указателей проверяется во время компиляции средством проверки заимствований, предотвращая висячие указатели и другие формы неопределенного поведения . Кроме того, система типов Rust отделяет общие неизменяемые указатели формы &Tот уникальных изменяемых указателей формы &mut T. Однако изменяемый указатель может быть приведен к неизменному указателю, но не наоборот.

Право собственности [ править ]

В Rust есть система владения, в которой у всех значений есть уникальный владелец, а объем значения такой же, как и у владельца. [58] [59] Значения могут передаваться по неизменяемой ссылке, с использованием &T, по изменяемой ссылке, с использованием &mut Tили по значению с использованием T. В любой момент может быть несколько неизменяемых ссылок или одна изменяемая ссылка (неявная блокировка чтения-записи ). Компилятор Rust применяет эти правила во время компиляции, а также проверяет правильность всех ссылок.

Типы и полиморфизм [ править ]

Система типов поддерживает механизм, аналогичный классам типов , называемый « чертами », вдохновленный непосредственно языком Haskell . Это средство для специального полиморфизма , достигаемого путем добавления ограничений к объявлениям переменных типа. Другие возможности Haskell, такие как высший полиморфизм , пока не поддерживаются.

В Rust есть функция вывода типа для переменных, объявленных с ключевым словом let . Такие переменные не требуют первоначального присвоения значения для определения их типа. Ошибка времени компиляции возникает, если какая-либо ветвь кода оставляет переменную без присваивания. [60] Переменные, назначенные несколько раз, должны быть помечены ключевым словом mut.

Функции могут иметь общие параметры , которые обычно требуют, чтобы универсальный тип реализовывал определенную черту или свойства. В такой функции общее значение можно использовать только через эти черты. Это означает, что типовая функция может быть проверена, как только она будет определена. Это контрастирует с шаблонами C ++ , которые по сути своей являются типизированными и не могут быть проверены, пока не будут созданы конкретные типы. Концепции C ++ решают ту же проблему и являются частью C ++ 20 , хотя они по-прежнему не позволяют компилятору C ++ проверять тип шаблона без конкретной реализации.

Однако реализация дженериков Rust аналогична типичной реализации шаблонов C ++: для каждого экземпляра создается отдельная копия кода. Это называется мономорфизацией и контрастирует со схемой стирания типов , обычно используемой в Java и Haskell. Стирание типов также доступно в Rust с помощью ключевого слова dyn. Преимущество мономорфизации - это оптимизация кода для каждого конкретного случая использования; недостатком является увеличенное время компиляции и размер результирующих двоичных файлов.

Система объектов в Rust основана на реализациях, чертах и структурированных типах . Реализации выполняют роль, аналогичную роли классов в других языках, и определяются с помощью ключевого слова impl. Наследование и полиморфизм обеспечиваются признаками; они позволяют определять методы и смешивать их с реализациями. Структурированные типы используются для определения полей. Реализации и признаки не могут определять сами поля, и только признаки могут обеспечивать наследование. Среди других преимуществ, это предотвращает проблемы с бриллиантом из множественного наследования, как в C ++. Другими словами, Rust поддерживает наследование интерфейсов, но заменяет наследование реализации композицией ; см. композицию над наследованием .

Производительность [ править ]

Производительность идиоматического Rust сравнима с производительностью идиоматического C ++. [61] [62]

Принятие [ править ]

Rust был третьим по популярности языком программирования в ежегодном опросе Stack Overflow 2015 года [63] и занял первое место в 2016–2020 годах. [64]

Веб-браузер [ править ]

Веб - браузер и несколько связанных с ним компонентов записываются в Русте. Firefox , [65] , например, состоят из двух проектов , написанных на Русте, включая Servo , с параллельным web - браузер двигателя [66] , разработанный Mozilla в сотрудничестве с Samsung [67] и Quantum , который состоит из нескольких субов проектов, для улучшения в Gecko web - браузер , двигатель , который также разработан Mozilla. [68]

Операционные системы [ править ]

Операционные системы и компоненты уровня ОС, написанные на Rust, включают:

  • Редокс : микроядро [69]
  • Stratis : менеджер файловой системы для Fedora [70] и RHEL 8 [71]
  • Google Fuchsia : операционная система

Другое [ править ]

  • exa : "современная замена ls "
  • Microsoft Azure IoT Edge: платформа, используемая для запуска служб Azure и искусственного интеллекта на устройствах IoT, имеет компоненты, реализованные в Rust [72]
  • OpenDNS : используется в двух своих компонентах [73] [74] [75]
  • Tor : анонимная сеть , изначально написанная на C, экспериментирует с переносом на Rust для своих функций безопасности [76] [77]
  • Deno : безопасная среда выполнения для JavaScript и TypeScript, созданная с помощью V8 , Rust и Tokio [78]
  • Discord : сервис чата, ориентированный на геймеров, который использует Rust для части своей серверной части, а также для кодирования видео на стороне клиента [79]
  • TerminusDB : база данных графов с открытым исходным кодом, предназначенная для совместного построения и управления графами знаний [80]

Развитие [ править ]

Конференции по Rust включают:

  • RustConf: ежегодная конференция в Портленде, штат Орегон . Проводится ежегодно с 2016 г. (кроме 2020 г. из-за пандемии COVID-19 ). [81]
  • Rust Belt Rust: конференция #rustlang в Rust Belt [82]
  • RustFest: конференция @rustlang в Европе [83]
  • РастКон Азия
  • Rust LATAM
  • Oxidise Global [84]

См. Также [ править ]

  • Сравнение языков программирования

Ссылки [ править ]

  1. ^ "Объявление о Rust 1.50.0" . 11 февраля 2021 г.
  2. ^ «Поддержка платформы Rust» . Ржавая кузница . Проверено 19 мая 2019 .
  3. ^ «Часто задаваемые вопросы» . Ржавчина . Проверено 14 мая 2019 .
  4. ^ "Порты OpenBSD" . Проверено 3 апреля 2018 .
  5. ^ «Создание и развертывание библиотеки Rust на iOS» . 6 сентября 2017 . Проверено 11 января 2019 .
  6. ^ a b c d e f g h i j k l m "Ссылка на Rust: Приложение: Влияния" . Проверено 11 ноября 2018 года .
  7. ^ «Примечание исследования: система типов» . 2015-02-01 . Проверено 25 марта 2015 .
  8. ^ "RFC для выражения 'if let'" . Проверено 4 декабря 2014 года .
  9. ^ "Оптимизация команд?" . 2014-06-26 . Проверено 10 декабря 2014 .
  10. ^ «Идрис - Типы уникальности» . Проверено 20 ноября 2018 .
  11. ^ Jaloyan, Georges-Axel (19 октября 2017). «Безопасные указатели в СПАРК 2014». arXiv : 1710.07047 . Bibcode : 2017arXiv171007047J . Цитировать журнал требует |journal=( помощь )
  12. ^ Латтнер, Крис. "Домашняя страница Криса Латтнера" . Nondot.org . Проверено 14 мая 2019 .
  13. ^ «Microsoft открывает вдохновленный Rust язык программирования Project Verona на GitHub» . Проверено 17 января 2020 .
  14. ^ Хора, Грейдон (2016-12-28). «Ржавчина - это в первую очередь безопасность» . Грейдон2 . Dreamwidth Studios . Проверено 13 мая 2019 .
  15. ^ a b c "FAQ - Проект Rust" . Rust-lang.org . Архивировано из оригинала на 2016-06-09 . Проверено 27 июня 2019 .
  16. ^ «Сравнение Rust и C ++» . Проверено 20 ноября 2018 года .
  17. ^ a b «Небезопасная ржавчина» . Проверено 17 октября 2020 .
  18. ^ «Бесстрашная безопасность: безопасность памяти» . Проверено 4 ноября 2020 года .
  19. ^ "Rc <T>, умный указатель с подсчетом ссылок" . Проверено 4 ноября 2020 года .
  20. ^ Ноэль (2010-07-08). «Ржавый язык» . Лямбда Окончательный . Проверено 30 октября 2010 .
  21. ^ "Авторы ржавчины / ржавчины" . GitHub . Проверено 12 октября 2018 .
  22. ^ Брайт, Питер (2013-04-03). «Samsung объединяется с Mozilla для создания движка браузера для многоядерных машин» . Ars Technica . Проверено 4 апреля 2013 .
  23. ^ "Почему Rust для безопасного системного программирования" . Проверено 22 июля 2019 .
  24. ^ «Как Microsoft принимает Rust» . Проверено 7 августа 2020 .
  25. ^ https://insights.stackoverflow.com/survey/2020#most-loved-dreaded-and-wanted
  26. ^ "Начало работы" . rust-lang.org . Дата обращения 11 октября 2020 .
  27. ^ Хора, Грейдон (2014-06-07). «Интернет-археология: окончательный источник того, почему Rust назван« Rust » » . Reddit.com . Проверено 3 ноября 2016 .
  28. ^ «Будущее время» . 2011-04-29 . Проверено 6 февраля 2012 .
  29. ^ Хор, Грейдон (7 июля 2010). Сервопривод проекта (PDF) . Ежегодный саммит Mozilla 2010. Уистлер, Канада . Проверено 22 февраля 2017 года .
  30. ^ Хоар, Грейдон (2010-10-02). «Ржавчина Прогресс» . Архивировано из оригинала на 2014-08-15 . Проверено 30 октября 2010 .
  31. ^ Хора, Грейдон (2011-04-20). "[rust-dev] stage1 / rustc builds" . Проверено 20 апреля 2011 .
  32. ^ катаморфизм (2012-01-20). «Mozilla и сообщество Rust выпускают Rust 0.1 (строго типизированный язык системного программирования с упором на безопасность памяти и параллелизм)» . Проверено 6 февраля 2012 .
  33. ^ "История версий" . Проверено 1 января 2017 .
  34. The Rust Core Team (15 мая 2015 г.). «Анонсируем Rust 1.0» . Проверено 11 декабря 2015 .
  35. ^ «Планирование поездов» . Проверено 1 января 2017 .
  36. ^ Стром, Роберт Э .; Йемини, Шаула (1986). «Typestate: концепция языка программирования для повышения надежности программного обеспечения» (PDF) . IEEE Transactions по разработке программного обеспечения : 157–171. DOI : 10.1109 / TSE.1986.6312929 . ISSN 0098-5589 . S2CID 15575346 . Проверено 14 ноября 2010 .   
  37. Уолтон, Патрик (26 декабря 2012). "Typestate мертв, да здравствует Typestate!" . GitHub . Проверено 3 ноября 2016 .
  38. ^ Biffle, Клифф (2019-06-05). "Типичный образец состояния в ржавчине" . Проверено 1 февраля 2021 .
  39. ^ Бинсток, Эндрю. «Взлет и падение языков в 2013 году» . Доктора Добба .
  40. ^ «Безопасное взаимодействие между Rust и C ++ с CXX» . InfoQ . 2020-12-06 . Проверено 2021 января .
  41. ^ Cimpanu, Каталин (2020-08-11). «Mozilla увольняет 250 сотрудников, в то время как она переориентируется на коммерческие продукты» . ZDNet . Проверено 2 декабря 2020 .
  42. ^ Купер, Дэниел (2020-08-11). «Mozilla уволила 250 сотрудников из-за пандемии» . Engadget . Проверено 2 декабря 2020 .
  43. ^ @tschneidereit (12.08.2020). «Большая часть команды, которой я управлял, была частью увольнения Mozilla во вторник. Эта команда была командой Mozilla Rust и командой Mozilla Wasmtime. Я думал, что знаю, как говорить об этом сейчас, но не знаю. Это душераздирающе, непонятно и ошеломляюще по своему воздействию » (твит) . Проверено 2 декабря 2020 г. - через Twitter .
  44. ^ @asajeffrey (11.08.2020). «Mozilla закрывает команду, в которой я работаю, поэтому я один из многих людей, которые сейчас задаются вопросом, каким будет следующий концерт. Это была дикая поездка!» (Твитнуть) . Проверено 2 декабря 2020 г. - через Twitter .
  45. ^ Колаковски, Ник (2020-08-27). "Проблемы с Rust после массовых увольнений Mozilla?" . Кости . Проверено 2 декабря 2020 .
  46. ^ "Закладывая фундамент для будущего Rust" . Блог Rust . 2020-08-18 . Проверено 2 декабря 2020 .
  47. ^ "Фонд Ржавчины" . Foundation.rust-lang.org . 2021-02-08 . Проверено 9 февраля 2021 .
  48. ^ «Mozilla приветствует Rust Foundation» . Блог Mozilla . 2021-02-09 . Проверено 9 февраля 2021 .
  49. ^ "rust / src / grammar / parser-lalr.y" . 2017-05-23 . Проверено 23 мая 2017 .
  50. ^ Аврам, Авель (2012-08-03). «Интервью о Rust, языке системного программирования, разработанном Mozilla» . InfoQ . Проверено 17 августа 2013 .
  51. ^ "Описание пакета Debian: rustc" .
  52. ^ Розенблат, Сет (2013-04-03). «Samsung присоединяется к поискам Rust Mozilla» . Проверено 5 апреля 2013 .
  53. ^ a b Браун, Нил (2013-04-17). «Вкус ржавчины» . Проверено 25 апреля 2013 .
  54. ^ «Гонки за данные и условия гонки» .
  55. ^ "Часто задаваемые вопросы о языке Rust" . static.rust-lang.org . 2015. Архивировано из оригинала на 2015-04-20 . Проверено 24 апреля 2017 .
  56. ^ "RAII - Rust By Example" . doc.rust-lang.org . Проверено 22 ноября 2020 .
  57. ^ Клабник, Стив; Николс, Кэрол (июнь 2018). «Глава 4: Понимание собственности». Язык программирования Rust . Сан-Франциско, Калифорния: Пресса без крахмала. п. 44. ISBN 978-1-593-27828-1. Проверено 14 мая 2019 .
  58. ^ «Язык программирования Rust: что такое право собственности» . Rust-lang.org . Проверено 14 мая 2019 .
  59. ^ Уолтон, Патрик (01.10.2010). «Особенности Rust I: Вывод типов» . Проверено 21 января 2011 .
  60. ^ Уолтон, Патрик (05.12.2010). «Цели проектирования C ++ в контексте Rust» . Проверено 21 января 2011 .
  61. ^ "Насколько быстро ржавчина?" . Часто задаваемые вопросы по языку программирования Rust . Проверено 11 апреля 2019 года .
  62. ^ «Опрос разработчиков Stack Overflow 2015» . Stackoverflow.com . Проверено 3 ноября 2016 .
  63. ^ https://insights.stackoverflow.com/survey/2019
  64. ^ Герман, Дэйв (2016-07-12). «Доставка Rust в Firefox * Mozilla Hacks: блог веб-разработчиков» . Hacks.mozilla.org . Проверено 3 ноября 2016 .
  65. ^ Yegulalp, Сердар (2015-04-03). «Сервер Mozilla на базе Rust движется вперед» . InfoWorld . Проверено 15 марта 2016 .
  66. ^ Lardinois, Фредерик (2015-04-03). «Mozilla и Samsung объединились для разработки Servo, браузера нового поколения Mozilla для многоядерных процессоров» . TechCrunch .
  67. Рианна Брайант, Дэвид (27 октября 2016 г.). «Квантовый скачок в Интернете» . Средний . Проверено 27 октября 2016 года .
  68. ^ Yegulalp, Сердар. «Redox OS Rust может показать Linux несколько новых трюков» . информационный мир . Проверено 21 марта 2016 .
  69. Сей, Марк (10 октября 2018 г.). «Новые возможности Fedora 29: Startis теперь официально в Fedora» . Marksei, Еженедельные таблетки сисадмина . Проверено 13 мая 2019 .
  70. ^ «RHEL 8: Глава 8. Управление многоуровневым локальным хранилищем с помощью Stratis» . 10 октября 2018.
  71. Николс, Шон (27 июня 2018 г.). «Следующая уловка Microsoft - выбросить все из облака в Azure IoT Edge» . Реестр . Проверено 27 сентября 2019 .
  72. ^ Balbaert, Иво (27 мая 2015). Основы Rust . Packt Publishing. п. 6. ISBN 978-1785285769. Проверено 21 марта 2016 .
  73. Франк, Денис (5 декабря 2013 г.). «Использование HyperLogLog для обнаружения вредоносных программ быстрее, чем когда-либо» . Лаборатории безопасности OpenDNS . Проверено 19 марта 2016 .
  74. Денис, Франк (4 октября 2013 г.). «ZeroMQ: Помогает нам блокировать вредоносные домены в реальном времени» . Лаборатории безопасности OpenDNS . Проверено 19 марта 2016 .
  75. Хан, Себастьян (31 марта 2017). «[tor-dev] Tor на более безопасном языке: обновление сетевой команды из Амстердама» . Проверено 1 апреля 2017 .
  76. ^ asn (2017-07-05). "Уилмингтонские часы: хакфест команды Tor Network" . Блог Tor . Проверено 3 января 2018 .
  77. ^ Garbutt, Джеймс (27 января 2019). «Первые мысли о Deno, среде выполнения JavaScript / TypeScript» . 43081j.com . Проверено 27 сентября 2019 .
  78. ^ Ховарт, Джесси (2020-02-04). «Почему Discord переходит с Go на Rust» . Проверено 14 апреля 2020 .
  79. ^ terminusdb / terminusdb-store , TerminusDB, 2020-12-14 , получено 14.12.2020
  80. ^ "RustConf" .
  81. ^ Ржавчина Пояс Ржавчина . Дейтон, Огайо. 2019-10-18 . Проверено 14 мая 2019 .
  82. ^ RustFest . Барселона, Испания: asquera Event UG. 2019 . Проверено 14 мая 2019 .
  83. ^ "Oxidize Global" . Oxidize Берлинская конференция . Проверено 1 февраля 2021 .

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • Rust-lang на GitHub