Rust Foundation сообщило, что Ferrous Systems согласилась предоставить свою спецификацию языка Ferrocene (Ferrocene Langauge Specification, FLS) для Rust Project. Это щедрое пожертвование обеспечит более ясный путь к предоставлению официальной спецификации Rust. Оно также позволит Rust Project контролировать свою текущую эволюцию, отмечая важную веху для всей экосистемы Rust.
Как известно, Rust 1.0 был опубликован в мае 2015 г. По мере приближения к своему 10-летию Rust стал одним из самых быстрорастущих и любимых языков [1] среди разработчиков благодаря сочетанию скорости, безопасности и активного сообщества.
Как и любой растущий язык с открытым исходным кодом, Rust имеет значительное количество документации и учебных пособий, предоставляемых проектом Rust [2]. В онлайн-библиотеку включены официальная книга Rust [3], Справочник по Rust [4], курсы и учебные пособия [5] и многое другое. Однако до сих пор отсутствовала важная часть документации, которую предоставляют многие другие языки: официальная спецификация языка.
В декабре 2022 г. был представлен RFC [6], чтобы побудить проект Rust начать работу над спецификацией. После долгих обсуждений RFC был одобрен в июле 2023 г., и работа началась. Первоначально команда по спецификации проекта Rust (t-spec [7]) была заинтересована в создании документа с нуля, используя Rust Reference в качестве направляющего маркера. Однако команда знала, что уже существует внешняя спецификация Rust, которая успешно используется для целей квалификации компилятора — спецификация языка Ferrocene.
FLS — это описание языка программирования Rust, разработанное Ferrous Systems [8] в июле 2022 года как часть Ferrocene [9], компилятора и цепочки инструментов Rust, предназначенных для критически важных для безопасности и регулируемых отраслей. FLS предоставляет структурированную и подробную справку по синтаксису, семантике и поведению Rust, служащую основой для проверки, соответствия и стандартизации. Поскольку на тот момент у Rust не было официальной спецификации языка и плана ее написания, FLS представляла собой важный шаг к описанию Rust таким образом, чтобы оно соответствовало требованиям отрасли, особенно в областях с высокой степенью надежности.
Команда t-spec, которая ответственна за создание и техническую поддержку языка Rust, хотела избежать возможной путаницы из-за наличия двух очень заметных спецификаций Rust в отрасли и поэтому решила, что будет полезно попытаться интегрировать FLS с Rust Reference, чтобы создать официальную спецификацию Rust Project. Они обратились к Ferrous Systems, которая согласилась предоставить свою FLS для Rust Project и позволить Rust Project взять на себя ее разработку и управление.
«Я действительно ценю этот шаг Ferrous, чтобы предоставить свою спецификацию для Rust Project», — сказал Джоэл Марси, директор по технологиям в Rust Foundation и член команды t-spec. «Они уже проделали огромную работу. Официальная интеграция FLS в проект Rust позволит команде t-spec ускорить наш прогресс в предоставлении официальной спецификации Rust, которую смогут использовать разработчики, поставщики критически важных для безопасности инструментов и другие, кто ищет спецификацию языка для своей работы».
«Изначально мы создали спецификацию языка Ferrocene, чтобы предоставить структурированное и надежное описание Rust для сертификации компилятора Ferrocene», — сказал Феликс Гилчер, соучредитель Ferrous Systems. «Для компании, ориентированной на открытый исходный код, предоставление FLS в проект Rust является логичным шагом на пути к содействию разработке единой, поддерживаемой сообществом спецификации, которая принесет пользу всем пользователям Rust. Мы рады поддержать эти усилия и с нетерпением ждем долгосрочного влияния, которое это окажет на принятие Rust в регулируемых и высоконадежных областях».
Будет переходный период, пока FLS будет постепенно интегрирована в проект Rust. Первая фаза работы будет включать включение FLS в инструменты и процессы проекта в соответствии с существующими целями проекта Rust [10]. После завершения интеграции Ferrous Systems сможет полагаться на версию спецификации проекта и прекратить свою собственную.
В более широком смысле, это пожертвование и последующие усилия t-spec предоставят всем разработчикам и организациям, кому требуется официальная спецификация Rust, подробную информацию для их уверенной работы с языком программирования Rust, что не может не радовать.
[3] https://doc.rust-lang.org/book/
[4] https://doc.rust-lang.org/stable/reference/
[5] https://doc.rust-lang.org/rust-by-example/
[6] https://rust-lang.github.io/rfcs/3355-rust-spec.html
[7] https://www.rust-lang.org/governance/teams/lang#team-spec
[8] https://ferrous-systems.com/
[9] https://spec.ferrocene.dev/
[10] https://rust-lang.github.io/rust-project-goals/2025h1/spec-fls-publish.html