рдлреЗрд╕рдмреБрдХрдиреЗ рдмрдХ 2 рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓реЗ

Facebook рдиреЗ рдПрдХ рдирд╡реАрди рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо, Buck2 рд╕рд╛рджрд░ рдХреЗрд▓реА, рдЬреНрдпрд╛рдЪрд╛ рдЙрджреНрджреЗрд╢ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдВрдордзреАрд▓ рдХреЛрдбрд╕рд╣ рдЦреВрдк рдореЛрдареНрдпрд╛ рд░рд┐рдкреЙрдЭрд┐рдЯрд░реАрдЬрдордзреВрди рдкреНрд░рдХрд▓реНрдк рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрдпреЛрдЬрд┐рдд рдХрд░рдгреЗ рдЖрд╣реЗ. Facebook рд╡рд░ рдкреВрд░реНрд╡реА рд╡рд╛рдкрд░рд▓реЗрд▓реА рдирд╡реАрди рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЖрдгрд┐ рдмрдХ рд╕рд┐рд╕реНрдЯреАрдордордзреАрд▓ рдореБрдЦреНрдп рдлрд░рдХ рдореНрд╣рдгрдЬреЗ Java рдРрд╡рдЬреА рд░рд╕реНрдЯ рднрд╛рд╖реЗрдЪрд╛ рд╡рд╛рдкрд░ рдЖрдгрд┐ рдЕрд╕реЗрдВрдмрд▓реА рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЖрдгрд┐ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдпрд╛рдордзреНрдпреЗ рд▓рдХреНрд╖рдгреАрдп рд╡рд╛рдв (рддреНрдпрд╛рдЪ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдордзреАрд▓ рдЕрдВрддрд░реНрдЧрдд рдЪрд╛рдЪрдгреНрдпрд╛рдВрдордзреНрдпреЗ, Buck2 рдЕрд╕реЗрдВрдмреНрд▓реА рдХрд░рддреЗ. рдмрдХрдкреЗрдХреНрд╖рд╛ рджреБрдкреНрдкрдЯ рд╡реЗрдЧрд╛рдиреЗ рдХрд╛рд░реНрдпреЗ). рдХреЛрдб Apache 2.0 рд▓рд╛рдпрд╕рдиреНрд╕ рдЕрдВрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.

рдкреНрд░рдгрд╛рд▓реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рднрд╛рд╖рд╛рдВрдордзреАрд▓ рдХреЛрдбрдЪреНрдпрд╛ рдЕрд╕реЗрдВрдмреНрд▓реАрд╢реА рдмрд╛рдВрдзрд▓реЗрд▓реА рдирд╛рд╣реА рдЖрдгрд┐ рдмреЙрдХреНрд╕рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ C++, рдкрд╛рдпрдерди, рд░рд╕реНрдЯ, рдХреЛрдЯрд▓рд┐рди, рдПрд░реНрд▓рд╛рдВрдЧ, рд╕реНрд╡рд┐рдлреНрдЯ, рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡реНрд╣-рд╕реА, рд╣реЕрд╕реНрдХреЗрд▓ рдЖрдгрд┐ рдУрд╕реАрдПрдордПрд▓ рдпрд╛ рднрд╛рд╖рд╛рдВрдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реНрдпрд╛ рдкреНрд░рдХрд▓реНрдкрд╛рдВрдЪреНрдпрд╛ рдЕрд╕реЗрдВрдмреНрд▓реАрд▓рд╛ рд╕рдорд░реНрдерди рджреЗрддреЗ. , Facebook рджреНрд╡рд╛рд░реЗ рд╡рд╛рдкрд░рд▓реЗ. рд╕реНрдЯрд╛рд░рд▓рд╛рд░реНрдХ рднрд╛рд╖рд╛, рдкрд╛рдпрдердирд╡рд░ рдЖрдзрд╛рд░рд┐рдд (рдмреЕрдЭреЗрд▓рдкреНрд░рдорд╛рдгреЗ), рдЕреЕрдб-рдСрди рдбрд┐рдЭрд╛рдЗрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдЖрдгрд┐ рдирд┐рдпрдо рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ. рд╕реНрдЯрд╛рд░рд▓рд╛рд░реНрдХ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЕрд╕реЗрдВрдмреНрд▓реА рд╕рд┐рд╕реНрдЯрдордЪреА рдХреНрд╖рдорддрд╛ рд╡рд┐рд╕реНрддреГрдд рдХрд░рдгреНрдпрд╛рд╕ рдЖрдгрд┐ рдПрдХрддреНрд░рд┐рдд рдкреНрд░рдХрд▓реНрдкрд╛рдВрдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рднрд╛рд╖рд╛рдВрдордзреВрди рдЕрдореВрд░реНрдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.

рдкрд░рд┐рдгрд╛рдорд╛рдВрдЪреЗ рдХреЕрд╢рд┐рдВрдЧ, рдХрд╛рдорд╛рдЪреЗ рд╕рдорд╛рдВрддрд░реАрдХрд░рдг рдЖрдгрд┐ рдХрд╛рд░реНрдпрд╛рдВрдЪреНрдпрд╛ рджреВрд░рд╕реНрде рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╛рдареА рд╕рдорд░реНрдерди (рд░рд┐рдореЛрдЯ рдмрд┐рд▓реНрдб рдПрдХреНрдЭрд┐рдХреНрдпреВрд╢рди) рджреНрд╡рд╛рд░реЗ рдЙрдЪреНрдЪ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рд╛рдкреНрдд рдХреЗрд▓реА рдЬрд╛рддреЗ. рдЕрд╕реЗрдВрдмреНрд▓реА рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд, "рд╣рд░реНрдореЗрдЯрд┐рд╕рд┐рдЯреА" рдЪреА рд╕рдВрдХрд▓реНрдкрдирд╛ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ - рдЕрд╕реЗрдВрдмрд▓ рдХреЗрд▓реЗрд▓рд╛ рдХреЛрдб рдмрд╛рд╣реЗрд░реАрд▓ рдЬрдЧрд╛рдкрд╛рд╕реВрди рдХрд╛рдкрд▓рд╛ рдЬрд╛рддреЛ, рдЕрд╕реЗрдВрдмреНрд▓реА рдкреНрд░рдХреНрд░рд┐рдпреЗрджрд░рдореНрдпрд╛рди рдмрд╛рд╣реЗрд░реВрди рдХрд╛рд╣реАрд╣реА рд▓реЛрдб рдХреЗрд▓реЗ рдЬрд╛рдд рдирд╛рд╣реА рдЖрдгрд┐ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╕рд┐рд╕реНрдЯрдореНрд╕рд╡рд░ рдХрд╛рдорд╛рдЪреНрдпрд╛ рд╡рд╛рд░рдВрд╡рд╛рд░ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдореБрд│реЗ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рд╣реЛрддреЛ ( рдкреБрдирд░рд╛рд╡реГрддреНрддреА рдЕрд╕реЗрдВрдмреНрд▓реА, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдбреЗрд╡реНрд╣рд▓рдкрд░рдЪреНрдпрд╛ рдорд╢реАрдирд╡рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкрд░рд┐рдгрд╛рдо рд╕рддрдд рдЗрдВрдЯрд┐рдЧреНрд░реЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рд╡рд░реАрд▓ рдмрд┐рд▓реНрдб рд╕рд╛рд░рдЦрд╛рдЪ рдЕрд╕реЗрд▓). рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡рд╛рдЪреНрдпрд╛ рдЕрднрд╛рд╡рд╛рдЪреА рдкрд░рд┐рд╕реНрдерд┐рддреА рдмрдХ 2 рдордзреНрдпреЗ рддреНрд░реБрдЯреА рдореНрд╣рдгреВрди рд╕рдордЬрд▓реА рдЬрд╛рддреЗ.

рдмрдХ 2 рдЪреА рдкреНрд░рдореБрдЦ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ:

  • рдкреНрд░реЛрдЧреНрд░реЕрдорд┐рдВрдЧ рднрд╛рд╖рд╛рдВрдирд╛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдгреНрдпрд╛рдЪреЗ рдирд┐рдпрдо рдЖрдгрд┐ рдЕрд╕реЗрдВрдмрд▓реА рд╕рд┐рд╕реНрдЯрдордЪрд╛ рдЧрд╛рднрд╛ рдкреВрд░реНрдгрдкрдгреЗ рд╡реЗрдЧрд│рд╛ рдЖрд╣реЗ. рдирд┐рдпрдо Starlark рднрд╛рд╖рд╛ рд╡рд╛рдкрд░рддрд╛рдд, рдЖрдгрд┐ Starlark рдЯреВрд▓рдХрд┐рдЯ рдЖрдгрд┐ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА Rust рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реА рдЖрд╣реЗ.
  • рдЕрд╕реЗрдВрдмрд▓реА рд╕рд┐рд╕реНрдЯреАрдо рдПрдХрд▓ рд╡рд╛рдвреАрд╡ рдЕрд╡рд▓рдВрдмрди рдЖрд▓реЗрдЦ рд╡рд╛рдкрд░рддреЗ (рдЯрдкреНрдкреНрдпрд╛рдВрдд рд╡рд┐рднрд╛рдЧрдгреА рди рдХрд░рддрд╛), рдЬреЗ рдмрдХ рдЖрдгрд┐ рдмреЕрдЭреЗрд▓рдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рдХрд╛рдорд╛рдЪреНрдпрд╛ рд╕рдорд╛рдВрддрд░реАрдХрд░рдгрд╛рдЪреА рдЦреЛрд▓реА рд╡рд╛рдврд╡рд┐рдгреНрдпрд╛рд╕ рдЖрдгрд┐ рдЕрдиреЗрдХ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рддреНрд░реБрдЯреА рдЯрд╛рд│рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.
  • GitHub рд╡рд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓реЗрд▓рд╛ Buck2 рдХреЛрдб рдЖрдгрд┐ рдкреНрд░реЛрдЧреНрд░реЕрдорд┐рдВрдЧ рднрд╛рд╖рд╛рдВрдирд╛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареАрдЪреЗ рдирд┐рдпрдо рдлреЗрд╕рдмреБрдХ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░рдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд рдЖрд╡реГрддреНрддреАрд╢реА рдЬрд╡рд│рдЬрд╡рд│ рдПрдХрд╕рд╛рд░рдЦреЗ рдЖрд╣реЗрдд (рдлрдХреНрдд рдлрд░рдХ Facebook рдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рдЖрдгрд┐ рдЕрд╕реЗрдВрдмрд▓реА рд╕рд░реНрд╡реНрд╣рд░рдЪреНрдпрд╛ рдЖрд╡реГрддреНрддреНрдпрд╛рдВрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗрдд).
  • рдЕрд╕реЗрдВрдмреНрд▓реА рд╕рд┐рд╕реНрдЯреАрдо рд░рд┐рдореЛрдЯ рдЯрд╛рд╕реНрдХ рдПрдХреНрдЭрд┐рдХреНрдпреВрд╢рди рд╕рд┐рд╕реНрдЯреАрдорд╕рд╣ рдПрдХрддреНрд░реАрдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реА рдЖрд╣реЗ рдЬреА рддреБрдореНрд╣рд╛рд▓рд╛ рд░рд┐рдореЛрдЯ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕ рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рд░рд┐рдореЛрдЯ рдПрдХреНрдЭрд┐рдХреНрдпреВрд╢рди API Bazel рд╢реА рд╕реБрд╕рдВрдЧрдд рдЖрд╣реЗ рдЖрдгрд┐ Buildbarn рдЖрдгрд┐ EngFlow рд╕рд╣ рд╕реБрд╕рдВрдЧрддрддреЗрд╕рд╛рдареА рдЪрд╛рдЪрдгреА рдХреЗрд▓реА рдЖрд╣реЗ.
  • рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдорд╕рд╣ рдПрдХрддреНрд░реАрдХрд░рдг рдкреНрд░рджрд╛рди рдХреЗрд▓реЗ рдЖрд╣реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рд╕рдВрдкреВрд░реНрдг рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдЪреА рд╕рд╛рдордЧреНрд░реА рд╕рд╛рджрд░ рдХреЗрд▓реА рдЬрд╛рддреЗ, рдкрд░рдВрддреБ рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд, рд░рд┐рдкреЙрдЭрд┐рдЯрд░реАрдЪреНрдпрд╛ рдХрд╛рд╣реА рднрд╛рдЧрд╛рдЪреНрдпрд╛ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд╛рдирд┐рдХ рд╕реНрд▓рд╛рдЗрд╕рд╕рд╣ рдХрд╛рд░реНрдп рдХреЗрд▓реЗ рдЬрд╛рддреЗ (рд╡рд┐рдХрд╛рд╕рдХ рд╕рдВрдкреВрд░реНрдг рднрд╛рдВрдбрд╛рд░ рдкрд╛рд╣рддреЛ, рдкрд░рдВрддреБ рдХреЗрд╡рд│ рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдпрд▓реА рдЬреНрдпрд╛рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рддреЗ рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреВрди рдХрд╛рдврд▓реЗ рдЬрд╛рддрд╛рдд). EdenFS рдЖрдгрд┐ Git LFS рд╡рд░ рдЖрдзрд╛рд░рд┐рдд VFS, рдЬреЗ рд░реЛрдкрд╛рдд рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддрд╛рдд, рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗрдд.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛