ืคื™ื™ืกื‘ื•ืง ืคืจืกืžื” ืืช ืžืขืจื›ืช ื”ื‘ื ื™ื™ื” Buck2

ืคื™ื™ืกื‘ื•ืง ื”ืฆื™ื’ื” ืžืขืจื›ืช ื‘ื ื™ื™ื” ื—ื“ืฉื”, Buck2, ื”ืžืชืžืงื“ืช ื‘ื‘ื ื™ื™ืช ืคืจื•ื™ืงื˜ื™ื ืžืžืื’ืจื™ื ื’ื“ื•ืœื™ื ืžืื•ื“ ื”ื›ื•ืœืœื™ื ืงื•ื“ ื‘ืฉืคื•ืช ืชื›ื ื•ืช ืฉื•ื ื•ืช. ื”ื”ื‘ื“ืœื™ื ื”ืขื™ืงืจื™ื™ื ื‘ื™ืŸ ื”ื”ื˜ืžืขื” ื”ื—ื“ืฉื” ืœืžืขืจื›ืช Buck ืฉืฉื™ืžืฉื” ื‘ืขื‘ืจ ืืช ืคื™ื™ืกื‘ื•ืง ื”ื ื”ืฉื™ืžื•ืฉ ื‘ืฉืคืช Rust ื‘ืžืงื•ื Java ื•ืขืœื™ื™ื” ืžืฉืžืขื•ืชื™ืช ื‘ื™ืขื™ืœื•ืช ื•ื‘ื‘ื™ืฆื•ืขื™ื ืฉืœ ืชื”ืœื™ืš ื”ื”ืจื›ื‘ื” (ื‘ื‘ื“ื™ืงื•ืช ืคื ื™ืžื™ื•ืช ื‘ืื•ืชื” ืชืฉืชื™ืช, Buck2 ืžื‘ืฆืขืช ื”ืจื›ื‘ื” ืžืฉื™ืžื•ืช ืžื”ื™ืจื•ืช ืคื™ ืฉื ื™ื™ื ืžื‘ืืง). ื”ืงื•ื“ ืžื•ืคืฅ ืชื—ืช ืจื™ืฉื™ื•ืŸ Apache 2.0.

ื”ืžืขืจื›ืช ืื™ื ื” ืงืฉื•ืจื” ืœืงื•ื“ ื‘ื ื™ื™ื” ื‘ืฉืคื•ืช ืกืคืฆื™ืคื™ื•ืช ื•ืžื—ื•ืฅ ืœืงื•ืคืกื” ืชื•ืžื›ืช ื‘ืคืจื•ื™ืงื˜ื™ ื‘ื ื™ื™ื” ืฉื ื›ืชื‘ื• ื‘-C++, Python, Rust, Kotlin, Erlang, Swift, Objective-C, Haskell ื•-OCaml ื‘ืฉื™ืžื•ืฉ ืคื™ื™ืกื‘ื•ืง. ืฉืคืช Starlark ื”ืžื‘ื•ืกืกืช ืขืœ Python (ื›ืžื• ื‘-Bazel) ืžืฉืžืฉืช ืœืขื™ืฆื•ื‘ ืชื•ืกืคื•ืช, ื‘ื ื™ื™ืช ืกืงืจื™ืคื˜ื™ื ื•ื—ื•ืงื™ื. Starlark ืžืืคืฉืจืช ืœืš ืœื”ืจื—ื™ื‘ ืืช ื”ื™ื›ื•ืœื•ืช ืฉืœ ืžืขืจื›ืช ื”ื‘ื ื™ื™ื” ื•ืœื”ืชืคืฉื˜ ืžื”ืฉืคื•ืช ื”ืกืคืฆื™ืคื™ื•ืช ื”ืžืฉืžืฉื•ืช ื‘ืคืจื•ื™ืงื˜ื™ื ื”ื ื‘ื ื™ื.

ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื ืžื•ืฉื’ื™ื ื‘ืืžืฆืขื•ืช ืฉืžื™ืจื” ื‘ืžื˜ืžื•ืŸ ืฉืœ ืชื•ืฆืื•ืช, ืžืงื‘ื™ืœื•ืช ืขื‘ื•ื“ื” ื•ืชืžื™ื›ื” ื‘ื‘ื™ืฆื•ืข ืžืจื—ื•ืง ืฉืœ ืžืฉื™ืžื•ืช (Remote Build Execution). ื‘ืกื‘ื™ื‘ืช ื”-build ืžืฉืชืžืฉื™ื ื‘ืžื•ืฉื’ "ืื˜ื™ืžื•ืช" - ื”ืงื•ื“ ื”ืžื”ื•ื“ืจ ืžื ื•ืชืง ืžื”ืขื•ืœื ื”ื—ื™ืฆื•ืŸ, ืฉื•ื ื“ื‘ืจ ืœื ื ื˜ืขืŸ ืžื‘ื—ื•ืฅ ื‘ืžื”ืœืš ืชื”ืœื™ืš ื”ื‘ื ื™ื™ื”, ื•ื‘ื™ืฆื•ืข ื—ื•ื–ืจ ื•ื ืฉื ื” ืฉืœ ืขื‘ื•ื“ื” ืขืœ ืžืขืจื›ื•ืช ืฉื•ื ื•ืช ืžื•ื‘ื™ืœ ืœืื•ืชื” ืชื•ืฆืื” ( ื‘ื ื™ื™ื” ื—ื•ื–ืจืช, ืœืžืฉืœ, ื”ืชื•ืฆืื” ืฉืœ ื‘ื ื™ื™ืช ืคืจื•ื™ืงื˜ ื‘ืžื—ืฉื‘ ืฉืœ ื”ืžืคืชื— ืชื”ื™ื” ื–ื”ื” ืœื—ืœื•ื˜ื™ืŸ ืœื‘ื ื™ื™ื” ื‘ืฉืจืช ื”ืื™ื ื˜ื’ืจืฆื™ื” ื”ืจืฆื™ืฃ). ื”ืžืฆื‘ ืฉืœ ื—ื•ืกืจ ืชืœื•ืช ื ืชืคืก ื‘ื‘ืืง2 ื›ื˜ืขื•ืช.

ืชื›ื•ื ื•ืช ืžืคืชื— ืฉืœ Buck2:

  • ื”ื›ืœืœื™ื ืœืชืžื™ื›ื” ื‘ืฉืคื•ืช ืชื›ื ื•ืช ื•ืœื™ื‘ืช ืžืขืจื›ืช ื”ื‘ื ื™ื™ื” ืžื•ืคืจื“ื™ื ืœื—ืœื•ื˜ื™ืŸ. ื”ื›ืœืœื™ื ื›ืชื•ื‘ื™ื ื‘ืฉืคืช Starlark, ื•ืขืจื›ืช ื”ื›ืœื™ื ื•ื”ื™ื™ืฉื•ื ืฉืœ Starlark ื›ืชื•ื‘ื™ื ื‘-Rust.
  • ืžืขืจื›ืช ื”ื‘ื ื™ื™ื” ืžืฉืชืžืฉืช ื‘ื’ืจืฃ ืชืœื•ืช ืžืฆื˜ื‘ืจ ื‘ื•ื“ื“ (ืœืœื ื—ืœื•ืงื” ืœืฉืœื‘ื™ื), ื”ืžืืคืฉืจ ืœื”ื’ื“ื™ืœ ืืช ืขื•ืžืง ื”ื”ืงื‘ืœื” ืฉืœ ื”ืขื‘ื•ื“ื” ื‘ื”ืฉื•ื•ืื” ืœื‘ืืง ื•ื‘ืื–ืœ ื•ืœื”ื™ืžื ืข ืžืกื•ื’ื™ื ืจื‘ื™ื ืฉืœ ืฉื’ื™ืื•ืช.
  • ืงื•ื“ Buck2 ืฉืคื•ืจืกื ื‘-GitHub ื•ื›ืœืœื™ ื”ืชืžื™ื›ื” ื‘ืฉืคืช ื”ืชื›ื ื•ืช ื›ืžืขื˜ ื–ื”ื™ื ืœื’ืจืกื” ื”ืคื ื™ืžื™ืช ื”ืžืฉืžืฉืช ื‘ืชืฉืชื™ืช ืคื™ื™ืกื‘ื•ืง (ื”ื”ื‘ื“ืœื™ื ื”ื™ื—ื™ื“ื™ื ื”ื ื‘ืงื™ืฉื•ืจ ืœืžื”ื“ื•ืจื•ืช ื”ืžื”ื“ืจื™ื ื•ื‘ืฉืจืชื™ ื”ื‘ื ื™ื™ื” ืฉื‘ื”ื ืžืฉืชืžืฉืช ืคื™ื™ืกื‘ื•ืง).
  • ืžืขืจื›ืช ื”-build ืชื•ื›ื ื ื” ืžืชื•ืš ืขื™ืŸ ืœืื™ื ื˜ื’ืจืฆื™ื” ืขื ืžืขืจื›ื•ืช ื‘ื™ืฆื•ืข ืขื‘ื•ื“ื•ืช ืžืจื—ื•ืง ื”ืžืืคืฉืจื•ืช ืœื”ืจื™ืฅ ืขื‘ื•ื“ื•ืช ืขืœ ืฉืจืชื™ื ืžืจื•ื—ืงื™ื. ื”-API ืœื‘ื™ืฆื•ืข ืžืจื—ื•ืง ืชื•ืื ืœ-Bazel ื•ื ื‘ื“ืง ืœื’ื‘ื™ ืชืื™ืžื•ืช ืขื Buildbarn ื•-EngFlow.
  • ื ื™ืชื ืช ืื™ื ื˜ื’ืจืฆื™ื” ืขื ืžืขืจื›ื•ืช ืงื‘ืฆื™ื ื•ื™ืจื˜ื•ืืœื™ื•ืช, ืฉื‘ื”ืŸ ืžื•ืฆื’ ื”ืชื•ื›ืŸ ืฉืœ ื”ืžืื’ืจ ื›ื•ืœื•, ืืš ืœืžืขืฉื”, ื”ืขื‘ื•ื“ื” ืžืชื‘ืฆืขืช ืขื ื”ืคืจื•ืกื” ื”ืžืงื•ืžื™ืช ื‘ืคื•ืขืœ ืฉืœ ื—ืœืง ืžื”ืžืื’ืจ (ื”ืžืคืชื— ืจื•ืื” ืืช ื›ืœ ื”ืžืื’ืจ, ืืš ืจืง ืืช ื”ื ื“ืจืฉ ืงื‘ืฆื™ื ืฉื ื™ื’ืฉื™ื ืืœื™ื”ื ืžืื•ื—ื–ืจื™ื ืžื”ืžืื’ืจ). ื ืชืžื›ื™ื VFS ื”ืžื‘ื•ืกืกื™ื ืขืœ EdenFS ื•-Git LFS, ื”ืžืฉืžืฉื™ื ืืช Sapling.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”