Бак (программное обеспечение)
Оригинальный автор(ы) | Майкл Болин |
---|---|
Разработчик(и) | Мета Платформы , Inc. |
Первоначальный выпуск | 17 апреля 2013 г [1] |
Стабильная версия | 2021.01.12.01 / 12 января 2021 г [2] |
Репозиторий | |
Написано в | Бак1 – Ява Бак2 – Ржавчина |
Операционная система | Кросс-платформенный |
Лицензия | С [3] или Лицензия Апач 2.0 [4] |
Веб-сайт | бакс2 ![]() |
Buck — многоязычная система сборки, разработанная и используемая компанией Meta Platforms , Inc. Она была разработана для создания небольших повторно используемых модулей, состоящих из кода и ресурсов в монорепозитории . [5] Он поддерживает множество языков программирования , включая C++ , Swift , Unix Shell , Java , Kotlin , Python , Lua , OCaml , Rust и Go . Он может создавать двоичные выходные данные для различных целевых платформ, включая iOS , Android , .NET и виртуальных машин Java (VM) системы выполнения . Лицензирование Buck1 осуществляется по лицензии Apache 2.0, а Buck2 — по лицензии MIT или Apache 2.0. [3] [4]
Бак требует явного объявления зависимостей. Поскольку все зависимости являются явными и Buck имеет направленный ациклический граф всех исходных файлов и целевых объектов сборки, Buck может выполнять инкрементную перекомпиляцию, перестраивая только целевые объекты после измененных файлов. Бак вычисляет ключ для каждой цели, который представляет собой хеш содержимого файлов, от которых он зависит. Он сохраняет сопоставление этого ключа с целью сборки в кэше сборки.
История
[ редактировать ]В 2013 году был выпущен Buck1. Одной из ключевых особенностей стала возможность совместного использования результатов сборки между несколькими разработчиками и непрерывная интеграция (CI), поскольку Buck1 поддерживает API HTTP Cache . [6]
В 2023 году был выпущен Buck2 , в котором утверждалось, что сборки в 2 раза быстрее по сравнению с Buck1. Одним из крупнейших изменений по сравнению с Buck1 является то, что ядро написано на Rust вместо Java , а правила пишутся вне ядра в Starlark (языке, созданном для системы сборки Bazel ). [7]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Болин, Майкл (14 мая 2013 г.). «Бак: Как мы создаем приложения для Android в Facebook» . Примечания. Фейсбук . Фейсбук Инжиниринг . Проверено 16 июля 2019 г.
- ^ «Релизы: Facebook/Buck» . Гитхаб .
- ^ Jump up to: а б "бак/лицензия-мит" . 1 декабря 2022 года . Проверено 19 апреля 2023 г.
- ^ Jump up to: а б "buck/license-apache" . 1 декабря 2022 года . Проверено 19 апреля 2023 г.
- ^ «Обзор» . Бак: инструмент для сборки . Проверено 16 июля 2018 г.
Buck предназначен для создания нескольких результатов из одного репозитория, то есть монорепозитория, а не из нескольких репозиториев.
- ^ Блюстейн, Нофар. «Представляем кэш-аналитику для более быстрого и эффективного создания непрерывных интеграционных сборок | Использование» . Harness.io . Проверено 6 июня 2023 г.
- ^ Криль, Пол (06 апреля 2023 г.). «Мета-система сборки с открытым исходным кодом «значительно быстрее»» . Инфомир . Проверено 6 июня 2023 г.