рдЧреЛ рднрд╛рд╖реЗрдЪреЗ рдирд╡реАрди рдкреНрд░рдХрд╛рд╢рди, рдЖрд╡реГрддреНрддреА рез.реирек, рд╕рд╣рд╛ рдорд╣рд┐рдиреНрдпрд╛рдВрдирдВрддрд░ рдпреЗрддреЗ 1.23 рд╡рд░ рдЬрд╛. рдмрд╣реБрддреЗрдХ рдмрджрд▓ рдЯреВрд▓рдЪреЗрди, рд░рдирдЯрд╛рдЗрдо рдЖрдгрд┐ рд▓рд╛рдпрдмреНрд░рд░реАрдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдордзреНрдпреЗ рдЖрд╣реЗрдд. рдиреЗрд╣рдореАрдкреНрд░рдорд╛рдгреЗ, рдкреНрд░рдХрд╛рд╢рди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╕реБрд╕рдВрдЧрддрддреЗрдЪреЗ рдЖрд╢реНрд╡рд╛рд╕рди рдЧреЛ рез. рднрд╛рд╖рд╛ рдбрд┐рдЭрд╛рдЗрдирд░реНрд╕рдирд╛ рдЕрдкреЗрдХреНрд╖рд╛ рдЖрд╣реЗ рдХреА рдЬрд╡рд│рдЬрд╡рд│ рд╕рд░реНрд╡ рдЧреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕ рдкреВрд░реНрд╡реАрдкреНрд░рдорд╛рдгреЗрдЪ рд╕рдВрдХрд▓рд┐рдд рдЖрдгрд┐ рдЪрд╛рд▓реВ рд░рд╛рд╣рддреАрд▓.
рднрд╛рд╖реЗрддреАрд▓ рдмрджрд▓
рдЧреЛ рез.реирек рдЖрддрд╛ рдкреВрд░реНрдгрдкрдгреЗ рд╕рдорд░реНрдерди рджреЗрддреЗ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░рдЪреА рдЙрдкрдирд╛рдо: рдПрдХрд╛ рдкреНрд░рдХрд╛рд░рд╛рдЪреЗ рдЙрдкрдирд╛рд╡ рдШреЛрд╖рд┐рдд рдкреНрд░рдХрд╛рд░ рдореНрд╣рдгреВрди рдкреЕрд░рд╛рдореАрдЯрд░рд╛рдЗрдЬ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рддрдкрд╢реАрд▓ рдпреЗрдереЗ рдЖрд╣реЗрдд рднрд╛рд╖реЗрдЪреЗ рддрдкрд╢реАрд▓. рд╕рдзреНрдпрд╛рд╕рд╛рдареА, рд╣реЗ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп GOEXPERIMENT=noaliastypeparams рд╕реЗрдЯ рдХрд░реВрди рдЕрдХреНрд╖рдо рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ; рддрдерд╛рдкрд┐, Go 1.25 рдордзреНрдпреЗ aliastypeparams рдкрд░реНрдпрд╛рдп рдХрд╛рдвреВрди рдЯрд╛рдХрд▓рд╛ рдЬрд╛рдИрд▓.
рд╕рд╛рдзрдиреЗ
рдЧреЛ рдХрдорд╛рдВрдб
рдЧреЛ рдореЙрдбреНрдпреВрд▓реНрд╕ рдЖрддрд╛ go.mod рдордзреАрд▓ рдЯреВрд▓ рдбрд╛рдпрд░реЗрдХреНрдЯрд┐рд╡реНрд╣ рд╡рд╛рдкрд░реВрди рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдбрд┐рдкреЗрдВрдбрдиреНрд╕ рдЯреНрд░реЕрдХ рдХрд░реВ рд╢рдХрддрд╛рдд. рдпрд╛рдореБрд│реЗ "tools.go" рдирд╛рд╡рд╛рдЪреНрдпрд╛ рдлрд╛рдИрд▓рдордзреНрдпреЗ рд░рд┐рдХрд╛рдореНрдпрд╛ рдЖрдпрд╛рдд рдореНрд╣рдгреВрди рдЯреВрд▓реНрд╕ рдЬреЛрдбрдгреНрдпрд╛рдЪреА рдкреВрд░реНрд╡реАрдЪреА рдЧрд░рдЬ рджреВрд░ рд╣реЛрддреЗ. рдЧреЛ рдЯреВрд▓ рдХрдорд╛рдВрдб рдЖрддрд╛ рдЧреЛ рд╕реЛрдмрдд рдпреЗрдгрд╛рд▒реНрдпрд╛ рдЯреВрд▓реНрд╕ рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд рд╣реА рдЯреВрд▓реНрд╕ рдЪрд╛рд▓рд╡реВ рд╢рдХрддреЗ. рдЕрдзрд┐рдХ рдорд╛рд╣рд┐рддреА рдпреЗрдереЗ рдорд┐рд│реВ рд╢рдХрддреЗ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг.
go get рд╕рд╛рдареА рдирд╡реАрди -tool рдлреНрд▓реЕрдЧрдореБрд│реЗ рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрдгреНрдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреЕрдХреЗрдЬреЗрд╕рд╕рд╛рдареА рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдореЙрдбреНрдпреВрд▓рдордзреНрдпреЗ рдЯреВрд▓ рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд▓реЗ рдЬрд╛рддрд╛рдд.
рдирд╡реАрди рдореЗрдЯрд╛-рдкреЕрдЯрд░реНрди рдЯреВрд▓ рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдореЙрдбреНрдпреВрд▓рдордзреАрд▓ рд╕рд░реНрд╡ рд╕рд╛рдзрдирд╛рдВрдЪрд╛ рд╕рдВрджрд░реНрдн рджреЗрддреЗ. рдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдЧреЛ рдЧреЗрдЯ рдЯреВрд▓рджреНрд╡рд╛рд░реЗ рддреЗ рд╕рд░реНрд╡ рдЕрдкрдбреЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд┐рдВрд╡рд╛ рдЧреЛ рдЗрдВрд╕реНрдЯреЙрд▓ рдЯреВрд▓рджреНрд╡рд╛рд░реЗ рддреБрдордЪреНрдпрд╛ GOBIN рдбрд╛рдпрд░реЗрдХреНрдЯрд░реАрдордзреНрдпреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ.
рдЧреЛ рд░рди рджреНрд╡рд╛рд░реЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реЗ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓реНрд╕ рдЖрдгрд┐ рдирд╡реАрди рдЧреЛ рдЯреВрд▓ рд╡рд░реНрддрди рдЖрддрд╛ рдЧреЛ рдмрд┐рд▓реНрдб рдХреЕрд╢реЗрдордзреНрдпреЗ рдХреЕрд╢реЗ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рдпрд╛рдореБрд│реЗ рд╡рд╛рдврд▓реЗрд▓реНрдпрд╛ рдХреЕрд╢реЗрдореБрд│реЗ рд╡рд╛рд░рдВрд╡рд╛рд░ рд▓рд╛рдБрдЪ рдХрд░рдгреЗ рд╢рдХреНрдп рд╣реЛрддреЗ. #69290.
рдЧреЛ рдмрд┐рд▓реНрдб рдЖрдгрд┐ рдЧреЛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрдорд╛рдВрдб рдЖрддрд╛ -json рдлреНрд▓реЕрдЧ рд╕реНрд╡реАрдХрд╛рд░рддрд╛рдд, рдЬреЗ рдмрд┐рд▓реНрдб рдЖрдЙрдЯрдкреБрдЯ рдЖрдгрд┐ рдПрд░рд░реНрд╕рдирд╛ рд╕реНрдЯрдБрдбрд░реНрдб рдЖрдЙрдЯрдкреБрдЯрд╡рд░ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрдб JSON рдЖрдЙрдЯрдкреБрдЯ рдореНрд╣рдгреВрди рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддреЗ. рдлреЙрд░рдореЕрдЯ рддрдкрд╢реАрд▓ go help buildjson рдордзреНрдпреЗ рдкрд╛рд╣рддрд╛ рдпреЗрддреАрд▓.
рд╢рд┐рд╡рд╛рдп, go test -json рдЖрддрд╛ JSON рдордзреАрд▓ рдЖрдЙрдЯрдкреБрдЯ рдЖрдгрд┐ рдмрд┐рд▓реНрдб рдПрд░рд░реНрд╕рдЪрд╛ рдЕрд╣рд╡рд╛рд▓ рджреЗрддреЗ, рдЬреЗ рдЪрд╛рдЪрдгреА рдирд┐рдХрд╛рд▓ JSON рдордзреНрдпреЗ рдорд┐рд╕рд│рд▓реЗ рдЬрд╛рддреЗ. рдирд╡реАрди рдЕтАНреЕрдХреНрд╢рди рдкреНрд░рдХрд╛рд░рд╛рдВрджреНрд╡рд╛рд░реЗ рддреЗ рдУрд│рдЦрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд, рдкрд░рдВрддреБ рдЬрд░ рддреЗ рдЪрд╛рдЪрдгреА рдПрдХрддреНрд░реАрдХрд░рдг рдкреНрд░рдгрд╛рд▓реАрдордзреНрдпреЗ рд╕рдорд╕реНрдпрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛рдд, рддрд░ рддреБрдореНрд╣реА рдмрд┐рд▓реНрдбрдЪреНрдпрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдЖрдЙрдЯрдкреБрдЯрд╡рд░ рдкрд░рдд рдпреЗрдК рд╢рдХрддрд╛. GODEBUG рд╕реЗрдЯрдЕрдк gotestjsonbuildtext=1.
рдирд╡реАрди GOAUTH рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдЦрд╛рдЬрдЧреА рдореЙрдбреНрдпреВрд▓ рдкреБрд▓ рдЕрдзрд┐рдХреГрдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдПрдХ рд▓рд╡рдЪрд┐рдХ рдорд╛рд░реНрдЧ рдкреНрд░рджрд╛рди рдХрд░рддреЗ. рддреБрдореНрд╣реА go help goauth рдордзреНрдпреЗ рддрдкрд╢реАрд▓ рдкрд╛рд╣реВ рд╢рдХрддрд╛.
рдЧреЛ рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдЖрддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдЭрд╛рд▓рд╛ рдЖрд╣реЗ. рдореБрдЦреНрдп рдореЙрдбреНрдпреВрд▓рдЪреА рдЖрд╡реГрддреНрддреА рдЯреЕрдЧ рдЖрдгрд┐/рдХрд┐рдВрд╡рд╛ рдЖрд╡реГрддреНрддреА рдирд┐рдпрдВрддреНрд░рдг рдХрдорд┐рдЯрд╡рд░ рдЖрдзрд╛рд░рд┐рдд, рд╕рдВрдХрд▓рд┐рдд рдмрд╛рдпрдирд░реАрдордзреНрдпреЗ. рдЬрд░ рдХрд╛рд╣реА рдмрджрд▓ рдХреЗрд▓реЗ рдирд╕рддреАрд▓ рддрд░ +dirty рдкреНрд░рддреНрдпрдп рдЬреЛрдбрд▓рд╛ рдЬрд╛рдИрд▓. рдмрд╛рдпрдирд░реАрдордзреВрди рдЖрд╡реГрддреНрддреА рдирд┐рдпрдВрддреНрд░рдг рдорд╛рд╣рд┐рддреА рд╡рдЧрд│рдгреНрдпрд╛рд╕рд╛рдареА -buildvcs=false рдзреНрд╡рдЬ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ.
рдирд╡реАрди GODEBUG рд╕реЗрдЯрдЕрдк рдЯреВрд▓рдЪреЗрдирдЯреНрд░реЗрд╕=рез рдЖрддрд╛ go рдХрдорд╛рдВрдбрдордзреНрдпреЗ рдЯреВрд▓рдЪреЗрди рдирд┐рд╡рдб рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ.
рд╕реАрдЬреАрдУ
рд░рдирдЯрд╛рдЗрдо рдХрд╛рдордЧрд┐рд░реА рд╕реБрдзрд╛рд░рдгреНрдпрд╛рд╕рд╛рдареА Cgo C рдлрдВрдХреНрд╢рдиреНрд╕рд╕рд╛рдареА рдирд╡реАрди рдЕтАНреЕрдиреЛрдЯреЗрд╢рдиреНрд╕рдирд╛ рд╕рдорд░реНрдерди рджреЗрддреЗ. #cgo noescape cFunctionName рдХрдВрдкрд╛рдпрд▓рд░рд▓рд╛ рд╕рд╛рдВрдЧрддреЗ рдХреА C рдлрдВрдХреНрд╢рди cFunctionName рд▓рд╛ рдкрд╛рдард╡рд▓реЗрд▓реА рдореЗрдорд░реА рдПрд╕реНрдХреЗрдк рдЭрд╛рд▓реЗрд▓реА рдирд╛рд╣реА. #cgo nocallback cFunctionName рдХрдВрдкрд╛рдпрд▓рд░рд▓рд╛ рд╕рд╛рдВрдЧрддреЗ рдХреА C рдлрдВрдХреНрд╢рди cFunctionName рдХреЛрдгрддреНрдпрд╛рд╣реА Go рдлрдВрдХреНрд╢рдиреНрд╕рдирд╛ рдХреЙрд▓ рдмреЕрдХ рдХрд░рдд рдирд╛рд╣реА. рдЕрдзрд┐рдХ рдорд╛рд╣рд┐рддреА рдпреЗрдереЗ рдорд┐рд│реВ рд╢рдХрддреЗ рд╕реАрдЬреАрдУ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг.
Cgo рд╕рдзреНрдпрд╛ рдЕрд╢рд╛ C рдлрдВрдХреНрд╢рдирд▓рд╛ рдХреЙрд▓ рдХрдВрдкрд╛рдИрд▓ рдХрд░рдгреНрдпрд╛рд╕ рдирдХрд╛рд░ рджреЗрддреЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рдЕрдиреЗрдХ рд╡рд┐рд╕рдВрдЧрдд рдШреЛрд╖рдгрд╛ рдЖрд╣реЗрдд. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЬрд░ f рд╣реЗ void f(int) рдЖрдгрд┐ void f(double) рджреЛрдиреНрд╣реА рдореНрд╣рдгреВрди рдШреЛрд╖рд┐рдд рдХреЗрд▓реЗ рдЕрд╕реЗрд▓, рддрд░ cgo рдХрджрд╛рдЪрд┐рдд рдЕрд╡реИрдз рдХреЙрд▓рд┐рдВрдЧ рдХреНрд░рдо f(0) рдирд┐рд░реНрдорд╛рдг рдХрд░рдгреНрдпрд╛рдРрд╡рдЬреА рддреНрд░реБрдЯреА рдиреЛрдВрджрд╡реЗрд▓. рдпрд╛ рдкреНрд░рдХрд╛рд╢рдирд╛рдд рдирд╡реАрди рдореНрд╣рдгрдЬреЗ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдлрд╛рдпрд▓реАрдВрдордзреНрдпреЗ рд╡рд┐рд╕рдВрдЧрдд рдШреЛрд╖рдгрд╛ рджрд┐рд╕рддрд╛рдд рддреЗрд╡реНрд╣рд╛ рдпрд╛ рддреНрд░реБрдЯреА рд╕реНрдерд┐рддреАрдЪрд╛ рд╕реБрдзрд╛рд░рд┐рдд рд╢реЛрдз. #67699.
рдСрдмреНрдЬрдбрдВрдк
objdump рдЯреВрд▓ рдЖрддрд╛ ремрек-рдмрд┐рдЯ LoongArch (GOARCH=loong64), RISC-V (GOARCH=riscv64), рдЖрдгрд┐ S64X (GOARCH=s390x) рд╡рд░ рдбрд┐рд╕рдЕрд╕реЗрдореНрдмрд▓реАрд▓рд╛ рд╕рдорд░реНрдерди рджреЗрддреЗ.
рдкрд╢реБрд╡реИрджреНрдп
рдирд╡реАрди рдЪрд╛рдЪрдгреА рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЪрд╛рдЪрдгреА рд╕рдВрдЪрд╛рдВрдордзреНрдпреЗ рдЪрд╛рдЪрдгреА, рдлрдЬрд░, рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЖрдгрд┐ рдЙрджрд╛рд╣рд░рдг рдШреЛрд╖рдгрд╛рдВрдордзреНрдпреЗ рд╕рд╛рдорд╛рдиреНрдп рддреНрд░реБрдЯреА рдиреЛрдВрджрд╡рддреЛ, рдЬрд╕реЗ рдХреА рд╡рд┐рдХреГрдд рдирд╛рд╡реЗ, рдЕрд╡реИрдз рд╕реНрд╡рд╛рдХреНрд╖рд░реА рдХрд┐рдВрд╡рд╛ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдирд╕рд▓реЗрд▓реНрдпрд╛ рдУрд│рдЦрдХрд░реНрддреНрдпрд╛рдВрдЪреЗ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рдХрд░рдгрд╛рд░реА рдЙрджрд╛рд╣рд░рдгреЗ. рдпрд╛рдкреИрдХреА рдХрд╛рд╣реА рддреНрд░реБрдЯреАрдВрдореБрд│реЗ рдЪрд╛рдЪрдгреНрдпрд╛ рдЕрдпрд╢рд╕реНрд╡реА рд╣реЛрдК рд╢рдХрддрд╛рдд.
рд╡рд┐рджреНрдпрдорд╛рди printf рдкрд╛рд░реНрд╕рд░ рдЖрддрд╛ fmt.Printf(s) рдпрд╛ рдлреЙрд░реНрдордЪреНрдпрд╛ рдХреЙрд▓рд╕рд╛рдареА рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддреЛ, рдЬрд┐рдереЗ s рд╣реА рдПрдХ рдиреЙрди-рдХреЙрдиреНрд╕реНрдЯрдВрдЯ рдлреЙрд░рдореЕрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЖрд╣реЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рдЗрддрд░ рдХреЛрдгрддреЗрд╣реА рдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯ рдирд╛рд╣реАрдд. рдЕрд╕реЗ рдХреЙрд▓ рдЬрд╡рд│рдЬрд╡рд│ рдиреЗрд╣рдореАрдЪ рдПрдХ рддреНрд░реБрдЯреА рдЕрд╕рддрд╛рдд, рдХрд╛рд░рдг s рдЪреНрдпрд╛ рдореВрд▓реНрдпрд╛рдд % рд╡рд░реНрдг рдЕрд╕реВ рд╢рдХрддреЛ; рддреНрдпрд╛рдРрд╡рдЬреА fmt.Print рд╡рд╛рдкрд░рд╛. 60529. рд╣реА рддрдкрд╛рд╕рдгреА рд╡рд┐рджреНрдпрдорд╛рди рдХреЛрдбрдордзреНрдпреЗ рдЧреЛрд╖реНрдЯреА рд╢реЛрдзрддреЗ рдЖрдгрд┐ рдореНрд╣рдгреВрдирдЪ рдЬреЗрд╡реНрд╣рд╛ рднрд╛рд╖рд╛ рдЖрд╡реГрддреНрддреА (go.mod рдлрд╛рдЗрд▓рдЪреНрдпрд╛ go рдирд┐рд░реНрджреЗрд╢рд╛рдиреБрд╕рд╛рд░ рдХрд┐рдВрд╡рд╛ `//go:build` рдЯрд┐рдкреНрдкрдгреНрдпрд╛рдВрджреНрд╡рд╛рд░реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ) рдХрд┐рдорд╛рди Go 1.24 рдЕрд╕реЗрд▓ рддреЗрд╡реНрд╣рд╛рдЪ рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЬрд╛рддреЗ, рдЬреЗрдгреЗрдХрд░реВрди Go 1.24 рдЯреВрд▓рдЪреЗрдирд╡рд░ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддрд╛рдирд╛ рджреАрд░реНрдШ рдПрдХрддреНрд░реАрдХрд░рдг рдЦрдВрдбрд┐рдд рд╣реЛрдК рдирдпреЗрдд.
рдЬреЗрд╡реНрд╣рд╛ рдмрд┐рд▓реНрдбрдЯреЕрдЧ рдЪреБрдХреАрдЪрд╛ рдЕрд╕реЗрд▓ рддреЗрд╡реНрд╣рд╛ рд╡рд┐рджреНрдпрдорд╛рди рдмрд┐рд▓реНрдбрдЯреЕрдЧ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЖрддрд╛ рдирд┐рджрд╛рдирд╛рдЪрд╛ рдЕрд╣рд╡рд╛рд▓ рджреЗрддреЛ. рдЬреБрдиреНрдпрд╛ рдЖрд╡реГрддреНрддреАрдЪреА рдмрд┐рд▓реНрдб рдорд░реНрдпрд╛рджрд╛ //go:build рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рдЬрд╛. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, //go:build go1.23.1 рдореНрд╣рдгрдЬреЗ рдкреЙрдЗрдВрдЯ рд░рд┐рд▓реАрдЬ; рддреНрдпрд╛рдРрд╡рдЬреА //go:build go1.23 рд╡рд╛рдкрд░рд╛. #64127.
рд╡рд┐рджреНрдпрдорд╛рди рдХреЙрдкреАрд▓реЙрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЖрддрд╛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХрдЪрд╛ рдЕрд╣рд╡рд╛рд▓ рджреЗрддреЛ рдЬреЗрд╡реНрд╣рд╛ рдПрдЦрд╛рджрд╛ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдЯреНрд░рд┐рдкрд▓ тАЬрдлреЙрд░тАЭ рд▓реВрдкрдордзреНрдпреЗ рдШреЛрд╖рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рдЬрд╕реЗ рдХреА for i := iter(); рдЭрд╛рд▓реЗ(i); i = next(i) { тАж }, рдордзреНрдпреЗ sync.Locker рдЖрд╣реЗ, рдЬрд╕реЗ рдХреА sync.Mutex. 1.22 рд╡рд░ рдЬрд╛ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддреАрд╕рд╛рдареА рдПрдХ рдирд╡реАрди рдЪрд▓ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрд╢рд╛ рд▓реВрдкрдЪреЗ рд╡рд░реНрддрди рдмрджрд▓рд▓реЗ, рдорд╛рдЧреАрд▓ рдкреБрдирд░рд╛рд╡реГрддреНрддреАрдордзреАрд▓ рдореВрд▓реНрдпреЗ рдХреЙрдкреА рдХреЗрд▓реА; рд╣реА рдХреЙрдкреА рдХрд░рдгреЗ рдХреБрд▓реВрдкрд╛рдВрд╕рд╛рдареА рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╛рд╣реА. #66387.
рдЧреЛрдХрд╛рдЪреЗрдкреНрд░реЛрдЧ
рдЕрдВрддрд░реНрдЧрдд cmd/go рдмрд╛рдпрдирд░реА рдЖрдгрд┐ рдЪрд╛рдЪрдгреА рдХреЕрд╢рд┐рдВрдЧ рдпрдВрддреНрд░рдгрд╛ рдЖрддрд╛ рдЪрд╛рдЗрд▓реНрдб рдкреНрд░реЛрд╕реЗрд╕рджреНрд╡рд╛рд░реЗ рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ cmd/go рдЯреВрд▓ рдЖрдгрд┐ GOCACHEPROG рдПрдиреНрд╡реНрд╣рд╛рдпрд░реНрдирдореЗрдВрдЯ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдиреЗ рдирд╛рдорд╛рдВрдХрд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЪрд╛рдЗрд▓реНрдб рдкреНрд░реЛрд╕реЗрд╕ рджрд░рдореНрдпрд╛рди JSON рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд▓рд╛рдЧреВ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдкреВрд░реНрд╡реА рддреЗ GOEXPERIMENT рд╕рд╛рдареА рд╣реЛрддреЗ. рдкреНрд░реЛрдЯреЛрдХреЙрд▓рдЪреЗ рддрдкрд╢реАрд▓ рдпреЗрдереЗ рдкрд╛рд╣рддрд╛ рдпреЗрддреАрд▓ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг.
рдкреВрд░реНрдг рд╣реЛрдгреНрдпрд╛рдЪреА рд╡реЗрд│
рдЕрдиреЗрдХ рд░рдирдЯрд╛рдЗрдо рдХрд╛рдордЧрд┐рд░реА рд╕реБрдзрд╛рд░рдгрд╛рдВрдореБрд│реЗ рдкреНрд░рддрд┐рдирд┐рдзреА рдмреЗрдВрдЪрдорд╛рд░реНрдХрдЪреНрдпрд╛ рд╕рдВрдЪрд╛рд╡рд░ CPU рдУрд╡реНрд╣рд░рд╣реЗрдб рд╕рд░рд╛рд╕рд░реА 2-3% рдиреЗ рдХрдореА рдЭрд╛рд▓реЗ. рдЕрд░реНрдЬрд╛рдиреБрд╕рд╛рд░ рдирд┐рдХрд╛рд▓ рдмрджрд▓реВ рд╢рдХрддрд╛рдд. рдпрд╛ рд╕реБрдзрд╛рд░рдгрд╛рдВрдордзреНрдпреЗ рдпрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдирд╡реАрди рдЕрдВрдЧрднреВрдд рдирдХрд╛рд╢рд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ рд╕реНрд╡реАрдбрд┐рд╢ рдЯреЗрдмрд▓реНрд╕, рд▓рд╣рд╛рди рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдорд░реАрдЪреЗ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдо рд╡рд╛рдЯрдк рдЖрдгрд┐ рдореНрдпреБрдЯреЗрдХреНрд╕рдЪреЗ рдирд╡реАрди рдЕрдВрддрд░реНрдЧрдд рд░рдирдЯрд╛рдЗрдо рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА.
рдирд╡реАрди рдмрд┐рд▓реНрдЯ-рдЗрди рдореЕрдк рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЖрдгрд┐ рдирд╡реАрди рдЕрдВрддрд░реНрдЧрдд рд░рдирдЯрд╛рдЗрдо рдореНрдпреБрдЯреЗрдХреНрд╕ рдЕрдиреБрдХреНрд░рдореЗ рдмрд┐рд▓реНрдб рд╡реЗрд│реЗрд╡рд░ GOEXPERIMENT=noswissmap рдЖрдгрд┐ GOEXPERIMENT=nospinbitmutex рд╕реЗрдЯ рдХрд░реВрди рдЕрдХреНрд╖рдо рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд.
рд╕рдВрдХрд▓рдХ
рдХрдВрдкрд╛рдпрд▓рд░рдиреЗ cgo рджреНрд╡рд╛рд░реЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рд░рд┐рд╕реАрд╡реНрд╣рд░ рдкреНрд░рдХрд╛рд░рд╛рдВрд╕рд╣ рдирд╡реАрди рдкрджреНрдзрддреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЖрдзреАрдЪ рдордирд╛рдИ рдХреЗрд▓реА рд╣реЛрддреА, рдкрд░рдВрддреБ рдЯрд╛рдЗрдк рдЙрдкрдирд╛рд╡рд╛рджреНрд╡рд╛рд░реЗ рдпрд╛ рдирд┐рд░реНрдмрдВрдзрд╛рднреЛрд╡рддреА рдХрд╛рдо рдХрд░рдгреЗ рд╢рдХреНрдп рд╣реЛрддреЗ. рдЬрд░ рд░рд┐рд╕реАрд╡реНрд╣рд░рдиреЗ cgo-рдЬрдирд░реЗрдЯреЗрдб рдкреНрд░рдХрд╛рд░ рджрд░реНрд╢рд╡рд┐рд▓рд╛ рддрд░ Go 1.24 рдЖрддрд╛ рдиреЗрд╣рдореАрдЪ рддреНрд░реБрдЯреА рдиреЛрдВрджрд╡рддреЗ, рдкреНрд░рддреНрдпрдХреНрд╖ рдХрд┐рдВрд╡рд╛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖рдкрдгреЗ (рдЯрд╛рдЗрдк рдЙрдкрдирд╛рдорд╛рджреНрд╡рд╛рд░реЗ).
рд▓рд┐рдВрдХрд░
рд▓рд┐рдВрдХрд░ рдЖрддрд╛ ELF рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ GNU рдмрд┐рд▓реНрдб рдЖрдпрдбреЗрдВрдЯрд┐рдлрд╛рдпрд░ (ELF рдПрдВрдЯреНрд░реА NT_GNU_BUILD_ID) рдЖрдгрд┐ рдбрд┐рдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ macOS рд╡рд░ UUID (Mach-O рд▓реЛрдб рдХрдорд╛рдВрдб LC_UUID) рдЬрдирд░реЗрдЯ рдХрд░рддреЛ. рдмрд┐рд▓реНрдб рдЖрдпрдбреА рдХрд┐рдВрд╡рд╛ рдпреВрдпреВрдЖрдпрдбреА рдЧреЛ рдмрд┐рд▓реНрдб рдЖрдпрдбреА рдкрд╛рд╕реВрди рдмрдирд╡рд▓рд╛ рдЖрд╣реЗ. рд╣реЗ -B рдиреЙрди рд▓рд┐рдВрдХрд░ рдлреНрд▓реЕрдЧрд╕рд╣ рдмрдВрдж рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдХрд┐рдВрд╡рд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдиреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдореВрд▓реНрдпрд╛рд╕рд╣ -B 0xNNNN рд▓рд┐рдВрдХрд░ рдлреНрд▓реЕрдЧрд╕рд╣ рдУрд╡реНрд╣рд░рд░рд╛рдЗрдб рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.
рдЬрд╛рд╣рд┐рд░рд╛рдд
рдордзреНрдпреЗ рд╕рд╛рдВрдЧрд┐рддрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рдЧреЛ рез.реиреи рд░рд┐рд▓реАрдЬ рдиреЛрдЯреНрд╕, Go 1.24 рд▓рд╛ рдЖрддрд╛ Go 1.22.6 рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдирдВрддрд░рдЪреА рдЖрд╡реГрддреНрддреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдбреЗрд╡реНрд╣рд▓рдкрд░реНрд╕рдирд╛ рдЕрдкреЗрдХреНрд╖рд╛ рдЖрд╣реЗ рдХреА Go 1.26 рд▓рд╛ рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА Go 1.24 рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдирдВрддрд░рдЪреНрдпрд╛ рдкреЙрдЗрдВрдЯ рд░рд┐рд▓реАрдЭрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕реЗрд▓.
рдорд╛рдирдХ рдЧреНрд░рдВрдерд╛рд▓рдп
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛-рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╡реЗрд╢
рдирд╡реАрди рдкреНрд░рдХрд╛рд░ рдУрдПрд╕.рд░реВрдЯ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдСрдкрд░реЗрд╢рдиреНрд╕ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ.
рдХрд╛рд░реНрдп рдУрдПрд╕.рдУрдкрдирд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдЙрдШрдбрддреЗ рдЖрдгрд┐ рдкрд░рдд рдХрд░рддреЗ рдУрдПрд╕.рд░реВрдЯ. рдкрджреНрдзрддреА рдЪрд╛рд▓реВ рдУрдПрд╕.рд░реВрдЯ рддреНрдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рдХрд╛рдо рдХрд░рд╛ рдЖрдгрд┐ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдмрд╛рд╣реЗрд░реАрд▓ рд╕реНрдерд╛рдирд╛рдВрдирд╛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкрдерд╛рдВрдирд╛ рдкрд░рд╡рд╛рдирдЧреА рджреЗрдК рдирдХрд╛, рдЬреНрдпрд╛рдордзреНрдпреЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдмрд╛рд╣реЗрд░реАрд▓ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рджреБрд╡реНрдпрд╛рдВрдЪреЗ рдЕрдиреБрд╕рд░рдг рдХрд░рдгрд╛рд░реЗ рджреЗрдЦреАрд▓ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд. os.Root рд╡рд░реАрд▓ рдкрджреНрдзрддреА os рдкреЕрдХреЗрдЬрдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдмрд╣реБрддреЗрдХ рдлрд╛рдЗрд▓рд╕рд┐рд╕реНрдЯрдо рдСрдкрд░реЗрд╢рдиреНрд╕ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рддрд╛рдд, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдУрдПрд╕.рд░реВрдЯ.рдУрдкрди, рдУрдПрд╕.рд░реВрдЯ.рдХреНрд░рд┐рдПрдЯ, рдУрдПрд╕.рд░реВрдЯ.рдПрдордХреЗрдбреАрдЖрдпрдЖрд░ ╨╕ рдУрдПрд╕.рд░реВрдЯ.рд╕реНрдЯреЕрдЯ.
рдирд╡реАрди рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп
рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЖрддрд╛ рдЬрд▓рдж, рдХрдореА рддреНрд░реБрдЯреА-рдкреНрд░рд╡рдг рдкрджреНрдзрдд рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛рдд рдЪрд╛рдЪрдгреА.рдмреА.рд▓реВрдк bN рдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдард░рд╛рд╡рд┐рдХ рд▓реВрдк рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрд╕рдРрд╡рдЬреА b.Loop() { тАж } рд╕рд╛рд░рдЦреНрдпрд╛ рдмреЗрдВрдЪрдорд╛рд░реНрдХрд╡рд░ рдкреБрдирд░рд╛рд╡реГрддреНрддреА рдХрд░рдгреЗ рдЬрд╕реЗ рдХреА рд╢реНрд░реЗрдгреА bN рд╕рд╛рдареА рд╣реЗ рджреЛрди рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдлрд╛рдпрджреЗ рджреЗрддреЗ:
- рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдлрдВрдХреНрд╢рди рдкреНрд░рддрд┐-рдХрд╛рдЙрдВрдЯ рдПрдХрджрд╛рдЪ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рдореНрд╣рдгреВрди рдорд╣рд╛рдЧ рд╕реЗрдЯрдЕрдк рдЖрдгрд┐ рдХреНрд▓реАрдирдЕрдк рдЪрд░рдг рдлрдХреНрдд рдПрдХрджрд╛рдЪ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд.
- рдлрдВрдХреНрд╢рди рдХреЙрд▓ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдЖрдгрд┐ рдирд┐рдХрд╛рд▓ рдЪрд╛рд▓реВ рд░рд╛рд╣рддрд╛рдд, рдЬреНрдпрд╛рдореБрд│реЗ рдХрдВрдкрд╛рдпрд▓рд░ рд▓реВрдк рдмреЙрдбреА рдкреВрд░реНрдгрдкрдгреЗ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рдкрд╛рд╕реВрди рд░реЛрдЦрддреЛ.
рд╕реБрдзрд╛рд░рд┐рдд рдЕрдВрддрд┐рдо рдШрдЯрдХ
рдирд╡реАрди рдЧреБрдгрд╡рд┐рд╢реЗрд╖ рд░рдирдЯрд╛рдЗрдо.рдХреНрд▓реАрдирдЕрдк рдЬреЛрдбрд╛ рд╣реА рдПрдХ рдкреВрд░реНрдг рдХрд░рдгрд╛рд░реА рдпрдВрддреНрд░рдгрд╛ рдЖрд╣реЗ рдЬреА рдЕрдзрд┐рдХ рд▓рд╡рдЪрд┐рдХ, рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдо рдЖрдгрд┐ рдХрдореА рддреНрд░реБрдЯреА-рдкреНрд░рд╡рдг рдЖрд╣реЗ рд░рдирдЯрд╛рдЗрдо.рд╕реЗрдЯрдлрд╛рдпрдирд╛рд▓рд╛рдпрдЭрд░. AddCleanup рдСрдмреНрдЬреЗрдХреНрдЯрд▓рд╛ рдХреНрд▓реАрдирдЕрдк рдлрдВрдХреНрд╢рди рдЬреЛрдбрддреЗ рдЬреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реЛрддрд╛рдЪ рдЪрд╛рд▓рд╡рд▓реЗ рдЬрд╛рдИрд▓. рддрдерд╛рдкрд┐, рд╕реЗрдЯрдлрд╛рдпрдирд╛рд▓рд╛рдпрдЭрд░рдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд, рдПрдХрд╛рдЪ рдСрдмреНрдЬреЗрдХреНрдЯрд▓рд╛ рдЕрдиреЗрдХ рдХреНрд▓реАрдирдЕрдк рдЬреЛрдбрддрд╛ рдпреЗрддрд╛рдд, рдХреНрд▓реАрдирдЕрдк рдЕрдВрддрд░реНрдЧрдд рдкреЙрдЗрдВрдЯрд░реНрд╕рдирд╛ рдЬреЛрдбрддрд╛ рдпреЗрддрд╛рдд, рдХреНрд▓реАрдирдЕрдкрдореБрд│реЗ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╕рд╛рдпрдХрд▓ рддрдпрд╛рд░ рдХрд░рддрд╛рдд рддреЗрд╡реНрд╣рд╛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдЧрд│рддреА рд╣реЛрдд рдирд╛рд╣реА рдЖрдгрд┐ рдХреНрд▓реАрдирдЕрдкрдореБрд│реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд┐рдВрд╡рд╛ рддреЗ рдЬреНрдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯрдХрдбреЗ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддреЗ рддреНрдпрд╛ рд╡рд╕реНрддреВрдВрдЪреЗ рдбреАрд▓реЛрдХреЗрд╢рди рд╡рд┐рд▓рдВрдмрд┐рдд рд╣реЛрдд рдирд╛рд╣реА. рдирд╡реАрди рдХреЛрдбрдордзреНрдпреЗ SetFinalizer рдкреЗрдХреНрд╖рд╛ AddCleanup рд▓рд╛ рдкреНрд░рд╛рдзрд╛рдиреНрдп рджрд┐рд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ.
рдирд╡реАрди рдХрдордХреБрд╡рдд рдкреЕрдХреЗрдЬ
рдирд╡реАрди рдкреЕрдХреЗрдЬ рдХрдордХреБрд╡рдд рдХрдордХреБрд╡рдд рдкреЙрдЗрдВрдЯрд░реНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреЗ.
рдХрдордХреБрд╡рдд рдкреЙрдЗрдВрдЯрд░реНрд╕ рд╣реЗ рдореЗрдорд░реА-рдХрд╛рд░реНрдпрдХреНрд╖рдо рд╕рдВрд░рдЪрдирд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реЗ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдкреНрд░рд┐рдорд┐рдЯрд┐рд╡реНрд╣ рдЖрд╣реЗрдд рдЬрд╕реЗ рдХреА рдореЕрдкрд┐рдВрдЧ рд╡реНрд╣реЕрд▓реНрдпреВрдЬрд╕рд╛рдареА рдХрдордХреБрд╡рдд рд╢рдмреНрджрдХреЛрд╢, рдкреЕрдХреЗрдЬрдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдирд╕рд▓реЗрд▓реНрдпрд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдЧреЛрд╖реНрдЯреАрд╕рд╛рдареА рдХреЕрдиреЛрдирд┐рдХрд▓рд╛рдпрдЭреЗрд╢рди рд╢рдмреНрджрдХреЛрд╢. рдЕрджреНрд╡рд┐рддреАрдп, рдЖрдгрд┐ рд╡рд┐рд╡рд┐рдз рдкреНрд░рдХрд╛рд░рдЪреЗ рдХреЕрд╢реЗ. рдпрд╛ рд╡рд╛рдкрд░рд╛рдЪреНрдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрдгреНрдпрд╛рд╕рд╛рдареА, рд╣реЗ рдкреНрд░рдХрд╛рд╢рди рджреЗрдЦреАрд▓ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд░рдирдЯрд╛рдЗрдо.рдХреНрд▓реАрдирдЕрдк рдЬреЛрдбрд╛ ╨╕ рдореЕрдлреЕрд╢.рддреБрд▓рдиреАрдп.
рдирд╡реАрди рдХреНрд░рд┐рдкреНрдЯреЛ/рдПрдордПрд▓рдХреЗрдПрдо рдкреЕрдХреЗрдЬ
рдирд╡реАрди рдкреЕрдХреЗрдЬ рдХреНрд░рд┐рдкреНрдЯреЛ/рдПрдордПрд▓рдХреЗрдПрдо ML-KEM-768 рдЖрдгрд┐ ML-KEM-1024 рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рддреЗ.
рдПрдордПрд▓-рдХреЗрдИрдПрдо рд╣реА рдПрдХ рдкреЛрд╕реНрдЯ-рдХреНрд╡рд╛рдВрдЯрдо рдХреА рдПрдХреНрд╕рдЪреЗрдВрдЬ рдпрдВрддреНрд░рдгрд╛ рдЖрд╣реЗ, рдЬреА рдкреВрд░реНрд╡реА рдХрд╛рдпрдмрд░ рдореНрд╣рдгреВрди рдУрд│рдЦрд▓реА рдЬрд╛рдд рд╣реЛрддреА рдЖрдгрд┐ рдордзреНрдпреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реА рдЧреЗрд▓реА рд╣реЛрддреА FIPS 203.
рдирд╡реАрди рдкреЕрдХреЗрдЬреЗрд╕ crypto/hkdf, crypto/pbkdf2 рдЖрдгрд┐ crypto/sha3
рдирд╡реАрди рдкреЕрдХреЗрдЬ рдХреНрд░рд┐рдкреНрдЯреЛ/рдПрдЪрдХреЗрдбреАрдПрдл рдордзреНрдпреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ HMAC-рдЖрдзрд╛рд░рд┐рдд "Extract-and-Expand" рдХреА рдбреЗрд░рд┐рд╡реНрд╣реЗрд╢рди рдлрдВрдХреНрд╢рди HKDF рд▓рд╛рдЧреВ рдХрд░рддреЗ рдЖрд░рдПрдлрд╕реА 5869.
рдирд╡реАрди рдкреЕрдХреЗрдЬ рдХреНрд░рд┐рдкреНрдЯреЛ/pbkdf2 рдордзреНрдпреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рдкрд╛рд╕рд╡рд░реНрдб-рдЖрдзрд╛рд░рд┐рдд рдХреА рдбреЗрд░рд┐рд╡реНрд╣реЗрд╢рди рдлрдВрдХреНрд╢рди PBKDF2 рд▓рд╛рдЧреВ рдХрд░рддреЗ рдЖрд░рдПрдлрд╕реА 8018.
рдирд╡реАрди рдкреЕрдХреЗрдЬ рдХреНрд░рд┐рдкреНрдЯреЛ/sha3 рдордзреНрдпреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ SHA-3 рд╣реЕрд╢ рдлрдВрдХреНрд╢рди рдЖрдгрд┐ SHAKE рдЖрдгрд┐ cSHAKE рдПрдХреНрд╕рдЯреЗрдиреНрд╕рд┐рдмрд▓ рдЖрдЙрдЯрдкреБрдЯ рдлрдВрдХреНрд╢рдиреНрд╕ рд▓рд╛рдЧреВ рдХрд░рддреЗ FIPS 202.
рддрд┐рдиреНрд╣реА рдкреЕрдХреЗрдЬреЗрд╕ рд╡рд┐рджреНрдпрдорд╛рди golang.org/x/crypto/тАж рдкреЕрдХреЗрдЬреЗрд╕рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗрдд.
FIPS резрекреж-рей рдЕрдиреБрдкрд╛рд▓рди
рдпрд╛ рдкреНрд░рдХрд╛рд╢рдирд╛рдд рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ FIPS резрекреж-рей рдЕрдиреБрдкрд╛рд▓рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдпрдВрддреНрд░рдгрд╛рдВрдЪрд╛ рдПрдХ рдирд╡реАрди рд╕рдВрдЪ.
рдЧреЛ рдХреНрд░рд┐рдкреНрдЯреЛ рдореЙрдбреНрдпреВрд▓ рд╣рд╛ рдЕрдВрддрд░реНрдЧрдд рдорд╛рдирдХ рд▓рд╛рдпрдмреНрд░рд░реА рдкреЕрдХреЗрдЬреЗрд╕рдЪрд╛ рдПрдХ рд╕рдВрдЪ рдЖрд╣реЗ рдЬреЛ рдкрд╛рд░рджрд░реНрд╢рдХрдкрдгреЗ FIPS 140-3 рдордВрдЬреВрд░ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ. рдордВрдЬреВрд░ рдЕрд▓реНрдЧреЛрд░рд┐рджрдорд╕рд╛рдареА рдЧреЛ рдХреНрд░рд┐рдкреНрдЯреЛ рдореЙрдбреНрдпреВрд▓ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдирд╛ рдмрджрд▓рд╛рдВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА.
рдирд╡реАрди рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ GOFIPS140 рдмрд┐рд▓реНрдбрдордзреНрдпреЗ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЧреЛ рдХреНрд░рд┐рдкреНрдЯреЛ рдореЙрдбреНрдпреВрд▓рдЪреА рдЖрд╡реГрддреНрддреА рдирд┐рд╡рдбрдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ. рдирд╡реАрди GODEBUG рд╕реЗрдЯрдЕрдк рд░рдирдЯрд╛рдЗрдорд╡рд░ FIPS 140-140 рдореЛрдб рд╕рдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА fips3 рдЪрд╛ рд╡рд╛рдкрд░ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ.
рдЧреЛ рез.реирек рдордзреНрдпреЗ рдЧреЛ рдХреНрд░рд┐рдкреНрдЯреЛ рдореЙрдбреНрдпреВрд▓ vрез.реж.реж рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ, рдЬреНрдпрд╛рдЪреА рд╕рдзреНрдпрд╛ рд╕реАрдПрдорд╡реНрд╣реАрдкреА-рдорд╛рдиреНрдпрддрд╛рдкреНрд░рд╛рдкреНрдд рдкреНрд░рдпреЛрдЧрд╢рд╛рд│реЗрдд рдЪрд╛рдЪрдгреА рдХреЗрд▓реА рдЬрд╛рдд рдЖрд╣реЗ.
рдирд╡реАрди рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдкреЕрдХреЗрдЬ рдЪрд╛рдЪрдгреА/рд╕рд┐рдВрдХрдЯреЗрд╕реНрдЯ
рдирд╡реАрди рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдкреЕрдХреЗрдЬ рдЪрд╛рдЪрдгреА/рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭреЗрд╢рди рд╕рдорд╡рд░реНрддреА рдХреЛрдб рдЪрд╛рдЪрдгреАрд╕рд╛рдареА рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рддреЗ.
- рдХрд╛рд░реНрдп рд╕рд┐рдВрдХрдЯреЗрд╕реНрдЯ.рд░рди рдПрдХрд╛ рд╡реЗрдЧрд│реНрдпрд╛ "рдмрдмрд▓" рдордзреНрдпреЗ рдЧреЛрд░реЛрдЯрд┐рдирдЪрд╛ рдПрдХ рдЧрдЯ рдЪрд╛рд▓рд╡рддреЛ. рдкреЕрдХреЗрдЬ рдлрдВрдХреНрд╢рдирдЪреНрдпрд╛ рдмрдмрд▓рдордзреНрдпреЗ рд╡реЗрд│ рдЦреЛрдЯреНрдпрд╛ рдШрдбреНрдпрд╛рд│рд╛рдВрд╡рд░ рдХрд╛рдо рдХрд░рд╛.
- рдХрд╛рд░реНрдпреЗ рд╕рд┐рдВрдХрдЯреЗрд╕реНрдЯ.рд╡рд╛рдЯ рдкрд╣рд╛ рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдмрдмрд▓рдордзреНрдпреЗ рд╕рд░реНрд╡ рдЧреЛрд░реЛрдЯрд┐рди рдмреНрд▓реЙрдХ рд╣реЛрдИрдкрд░реНрдпрдВрдд рд╡рд╛рдЯ рдкрд╣рд╛.
рддрдкрд╢реАрд▓ рдкреЕрдХреЗрдЬ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдгрд╛рдд рдЖрдврд│реВ рд╢рдХрддрд╛рдд.
synctest рдкреЕрдХреЗрдЬ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдЖрд╣реЗ рдЖрдгрд┐ GOEXPERIMENT=synctest рд╕реЗрдЯ рдХрд░реВрди рддреЗ рд╕рдХреНрд╖рдо рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ. рднрд╡рд┐рд╖реНрдпрд╛рддреАрд▓ рдкреНрд░рдХрд╛рд╢рдирд╛рдВрдордзреНрдпреЗ рдкреЕрдХреЗрдЬ API рдмрджрд▓реВ рд╢рдХрддреЗ. рдордзреНрдпреЗ #67434 рддреБрдореНрд╣реА рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓ рдкрд╛рд╣реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рдЕрднрд┐рдкреНрд░рд╛рдп рджреЗрдК рд╢рдХрддрд╛.
рдЧреНрд░рдВрдерд╛рд▓рдпрд╛рдд рдХрд┐рд░рдХреЛрд│ рдмрджрд▓
рд╕рдВрдЧреНрд░рд╣рдг
archive/zip рдЖрдгрд┐ archive/tar рдордзреАрд▓ (*Writer.AddFS) рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЖрддрд╛ рд░рд┐рдХрд╛рдореНрдпрд╛ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реАрд╕рд╛рдареА рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рд╣реЗрдбрд░ рд▓рд┐рд╣рд┐рддрд╛рдд.
рдмрд╛рдЗрдЯ
рдкреЕрдХреЗрдЬ рдмрд╛рдЗрдЯ рдЗрдЯрд░реЗрдЯрд░реНрд╕рд╕рд╣ рдХрд╛рдо рдХрд░рдгрд╛рд░реА рдЕрдиреЗрдХ рдлрдВрдХреНрд╢рдиреНрд╕ рдЬреЛрдбрддреЗ:
- рдУрд│реА рдмрд╛рдЗрдЯ рд╕реНрд▓рд╛рдЗрд╕рдордзреНрдпреЗ рдирд╡реАрди рдУрд│-рд╡рд┐рднрд╛рдЬрд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧрд╡рд░ рдЗрдЯрд░реЗрдЯрд░ рдорд┐рд│рд╡рддреЗ.
- рд╕реНрдкреНрд▓рд┐рдЯрд╕реЗрдХ рд╡рд┐рднрд╛рдЬрдХрд╛рдиреЗ рд╡рд┐рднрдХреНрдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдмрд╛рдЗрдЯ рд╕реНрд▓рд╛рдЗрд╕рдЪреНрдпрд╛ рд╕рд░реНрд╡ рд╕рдмрд╕реНрд▓рд╛рдЗрд╕рд╡рд░ рдЗрдЯрд░реЗрдЯрд░ рдорд┐рд│рд╡рддреЗ.
- рд╕реНрдкреНрд▓рд┐рдЯрдЖрдлреНрдЯрд░рд╕реЗрдХ рд╕реЗрдкрд░реЗрдЯрд░рдЪреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдиреЗрдирдВрддрд░ рд╡рд┐рднрд╛рдЬрд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдмрд╛рдЗрдЯ рд╕реНрд▓рд╛рдЗрд╕рдЪреНрдпрд╛ рд╕рдмрд╕реНрд▓рд╛рдЗрд╕рд╡рд░ рдЗрдЯрд░реЗрдЯрд░ рдкрд░рдд рдХрд░рддреЗ.
- рдлреАрд▓реНрдбреНрд╕рд╕рд┐рдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рд╕реНрдкреЗрд╕ рдХреЕрд░реЗрдХреНрдЯрд░рдЪреНрдпрд╛ рдЕрдиреБрдХреНрд░рдорд╛рдВрднреЛрд╡рддреА рдмрд╛рдЗрдЯ рд╕реНрд▓рд╛рдЗрд╕рдЪреНрдпрд╛ рд╕рдмрд╕реНрд▓рд╛рдЗрд╕рд╡рд░ рдЗрдЯрд░реЗрдЯрд░ рдкрд░рдд рдХрд░рддреЗ. рдпреБрдирд┐рдХреЛрдб.рдЗрд╕рд╕реНрдкреЗрд╕
- рдлреАрд▓реНрдбреНрд╕рдлрдВрдХрд╕реЗрдХ рдпреБрдирд┐рдХреЛрдб рдХреЛрдб рдкреЙрдЗрдВрдЯреНрд╕рдЪреНрдпрд╛ рдЕрдиреБрдХреНрд░рдорд╛рдВрднреЛрд╡рддреА рдмрд╛рдЗрдЯ рд╕реНрд▓рд╛рдЗрд╕рдЪреНрдпрд╛ рд╕рдмрд╕реНрд▓рд╛рдЗрд╕рд╡рд░ рдПрдХ рдЗрдЯрд░реЗрдЯрд░ рдкрд░рдд рдХрд░рддреЛ рдЬреЛ рдкреНрд░реЗрдбрд┐рдХреЗрдЯрд▓рд╛ рд╕рдорд╛рдзрд╛рди рджреЗрддреЛ.
рдХреНрд░рд┐рдкреНрдЯреЛ/рдПрдИрдПрд╕
рдкрд░рддрд╛рд╡рд╛ рдореВрд▓реНрдп рдиреНрдпреВрдХрд╛рдпрдлрд░ рдЖрддрд╛ NewCTR, NewGCM, NewCBCEncrypter рдЖрдгрд┐ NewCBCDecrypter рдкрджреНрдзрддреА рд▓рд╛рдЧреВ рдХрд░рдд рдирд╛рд╣реА. рдпрд╛ рдкрджреНрдзрддреА рдХрд╛рдЧрджреЛрдкрддреНрд░реА рдирд╡реНрд╣рддреНрдпрд╛ рдЖрдгрд┐ рд╕рд░реНрд╡ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╡рд░ рдЙрдкрд▓рдмреНрдз рдирд╡реНрд╣рддреНрдпрд╛. рдЖрддрд╛ рдЕрд░реНрде рдмреНрд▓реЙрдХ рдпреЛрдЧреНрдп рдХрд╛рд░реНрдпрд╛рдВрдирд╛ рдереЗрдЯ рдкрд╛рдард╡рд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ рдХреНрд░рд┐рдкреНрдЯреЛ/рд╕рд┐рдлрд░. рд╕рдзреНрдпрд╛, рдХреНрд░рд┐рдкреНрдЯреЛ/рд╕рд┐рдлрд░ рдЕрдЬреВрдирд╣реА рдмреНрд▓реЙрдХ рд╡реНрд╣реЕрд▓реНрдпреВрдЬрд╡рд░ рдпрд╛ рдкрджреНрдзрддреА рддрдкрд╛рд╕рддреЗ, рдЬрд░реА рддреНрдпрд╛рдВрдирд╛ рдЖрддрд╛ рдорд╛рдирдХ рд▓рд╛рдпрдмреНрд░рд░реАрджреНрд╡рд╛рд░реЗ рд╕рдорд░реНрдерд┐рдд рдирд╛рд╣реА.
рдХреНрд░рд┐рдкреНрдЯреЛ/рд╕рд┐рдлрд░
рдирд╡реАрди рдЧреБрдгрд╡рд┐рд╢реЗрд╖ рдирд╡реАрдиGCMрд╡рд┐рдерд░рдБрдбрдордиреЙрдирд╕реЗ рдкрд░рддрд╛рд╡рд╛ AEAD, рдЬреЗ рд╕реАрд▓ рджрд░рдореНрдпрд╛рди рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдиреЙрдиреНрд╕ рдЬрдирд░реЗрдЯ рдХрд░реВрди рдЖрдгрд┐ рддреЗ рд╕рд┐рдлрд░рдЯреЗрдХреНрд╕реНрдЯрдордзреНрдпреЗ рдкреНрд░реАрдкреЗрдВрдб рдХрд░реВрди AES-GCM рд▓рд╛рдЧреВ рдХрд░рддреЗ.
рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдкреНрд░рд╡рд╛рд╣, рдкрд░рдд рдХреЗрд▓реЗ рдиреНрдпреВрд╕реАрдЯреАрдЖрд░ рд╡рд╛рдкрд░рд▓реНрдпрд╛рд╕ рдХреНрд░рд┐рдкреНрдЯреЛ/рдПрдИрдПрд╕ рдЖрддрд╛ amd64 рдЖрдгрд┐ arm64 рд╡рд░ рдЕрдиреЗрдХ рдкрдЯреАрдиреЗ рдЬрд▓рдж.
рдиреНрдпреВрдУрдПрдлрдмреА, рдирд╡реАрдиCFBEncrypter ╨╕ рдирд╡реАрди рд╕реАрдПрдлрдмреАрдбрд┐рдХреНрд░рд┐рдкреНрдЯрд░ рдЖрддрд╛ рдХрд╛рд▓рдмрд╛рд╣реНрдп рдШреЛрд╖рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗрдд. OFB рдЖрдгрд┐ CFB рдореЛрдбреНрд╕ рдЕрдкреНрд░рдорд╛рдгрд┐рдд рдЖрд╣реЗрдд, рдЬреЗ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕рдХреНрд░рд┐рдп рд╣рд▓реНрд▓реНрдпрд╛рдВрдирд╛ рдкреНрд▓реЗрдирдЯреЗрдХреНрд╕реНрдЯ рд╣рд╛рддрд╛рд│рдгреНрдпрд╛рд╕ рдЖрдгрд┐ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддрд╛рдд. рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХреЗрд▓реА рдЬрд╛рддреЗ AEAD рддреНрдпрд╛ рдмрджрд▓реНрдпрд╛рдд. рдЬрд░ рдЕрдкреНрд░рдорд╛рдгрд┐рдд рдореЛрдб рдЕрд╕реЗрд▓ рддрд░ рдкреНрд░рд╡рд╛рд╣ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕, рд╡рд╛рдкрд░рддрд╛ рдпреЗрдИрд▓ рдиреНрдпреВрд╕реАрдЯреАрдЖрд░ рддреНрдпрд╛ рдмрджрд▓реНрдпрд╛рдд.
рдХреНрд░рд┐рдкреНрдЯреЛ/рдИрд╕реАрдбреАрдПрд╕рдП
рдкреНрд░рд╛рдпрд╡реНрд╣реЗрдЯрдХреА.рд╕рд╛рдЗрди рдЖрддрд╛ рддреНрдпрд╛рдиреБрд╕рд╛рд░ рдПрдХ рдирд┐рд░реНрдзрд╛рд░рдХ рд╕реНрд╡рд╛рдХреНрд╖рд░реА рддрдпрд╛рд░ рдХрд░рддреЗ рдЖрд░рдПрдлрд╕реА 6979, рдЬрд░ рдпрд╛рджреГрдЪреНрдЫрд┐рдХрддреЗрдЪрд╛ рд╕реНрд░реЛрдд рд╢реВрдиреНрдп рдЕрд╕реЗрд▓.
рдХреНрд░рд┐рдкреНрдЯреЛ/рдПрдордбреАрел
рдкрд░рддрд╛рд╡рд╛ рдореВрд▓реНрдп рдПрдордбреАрел.рдирд╡реАрди, рдЖрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рджреЗрдЦреАрд▓ рд▓рд╛рдЧреВ рдХрд░рддреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ.рдмрд╛рдпрдирд░реАрдЕтАНреЕрдкреЗрдВрдбрд░.
рдХреНрд░рд┐рдкреНрдЯреЛ/рд░рдБрдб
рдХрд╛рд░реНрдп рд╡рд╛рдЪрд╛ рдЖрддрд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдЕрдкрдпрд╢рд╛рдЪреА рд╣рдореА рджреЗрдд тАЛтАЛрдирд╛рд╣реА. рд╡рд╛рдЪрддрд╛рдирд╛ рд░реАрдбрд▓рд╛ рдПрдЦрд╛рджреА рддреНрд░реБрдЯреА рдЖрдврд│рд▓реНрдпрд╛рд╕ рд╡рд╛рдЪрдХ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛рдпрдордЪрд╛ рдмрдВрдж рд╣реЛрдИрд▓. рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛ рдХреА рдбреАрдлреЙрд▓реНрдЯ рд░реАрдбрд░ рдиреЗрд╣рдореАрдЪ рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ, рдореНрд╣рдгреВрди рд╣рд╛ рдмрджрд▓ рдлрдХреНрдд рд░реАрдбрд░ рд╡реНрд╣реЗрд░рд┐рдЕрдмрд▓рд▓рд╛ рдУрд╡реНрд╣рд░рд░рд╛рдЗрдб рдХрд░рдгрд╛рд▒реНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд╡рд░ рдкрд░рд┐рдгрд╛рдо рдХрд░реЗрд▓. рдПрдХ рдЕрдкрд╡рд╛рдж рдореНрд╣рдгрдЬреЗ рей.резрен рдкреВрд░реНрд╡реАрдЪреЗ Linux рдХрд░реНрдирд▓, рдЬрд┐рдереЗ рдбреАрдлреЙрд▓реНрдЯ рд░реАрдбрд░ рдЕрдЬреВрдирд╣реА /dev/urandom рдЙрдШрдбрддреЛ рдЖрдгрд┐ рдЕрдпрд╢рд╕реНрд╡реА рд╣реЛрдК рд╢рдХрддреЛ.
Linux 6.11 рдЖрдгрд┐ рдирдВрддрд░рдЪреНрдпрд╛ рдЖрд╡реГрддреНрддреНрдпрд╛рдВрд╡рд░, Reader рдЖрддрд╛ vDSO рджреНрд╡рд╛рд░реЗ getrandom рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рд╡рд╛рдкрд░рддреЗ. рд╣реЗ рдЕрдиреЗрдХ рдкрдЯ рдЬрд▓рдж рдЖрд╣реЗ, рд╕рд╣рд╕рд╛ рд▓рд╣рд╛рди рд╡рд╛рдЪрдирд╛рдВрд╕рд╛рдареА.
OpenBSD рд░реАрдбрд░рд╡рд░ рдЖрддрд╛ arc4random_buf(3) рд╡рд╛рдкрд░рддреЗ.
рдирд╡реАрди рдЧреБрдгрд╡рд┐рд╢реЗрд╖ рдордЬрдХреВрд░ рдЖрддрд╛ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХрд▓реА рд╕реБрд░рдХреНрд╖рд┐рдд рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдордЬрдХреВрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддреЗ.
рдХреНрд░рд┐рдкреНрдЯреЛ/рдЖрд░рдПрд╕рдП
рдЬрдирд░реЗрдЯрдХреА рдЬрд░ резрежреирек рдмрд┐рдЯреНрд╕рдкреЗрдХреНрд╖рд╛ рдХрдореА рдХреА рд▓рд╛рдВрдмреАрдЪреА рд╡рд┐рдирдВрддреА рдХреЗрд▓реА рдЕрд╕реЗрд▓ рддрд░ рдЖрддрд╛ рдПрд░рд░ рдкрд░рдд рдХрд░рддреЗ. резрежреирек рдмрд┐рдЯреНрд╕рдкреЗрдХреНрд╖рд╛ рдХрдореА рдЖрдХрд╛рд░рд╛рдЪреНрдпрд╛ рдХреА рд╡рд╛рдкрд░рд▓реНрдпрд╛рд╕ рд╕рд░реНрд╡ рд╕рд╛рдЗрди, рд╡реНрд╣реЗрд░рд┐рдлрд╛рдп, рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдЖрдгрд┐ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдкрджреНрдзрддреА рдЖрддрд╛ рддреНрд░реБрдЯреА рдкрд░рдд рдХрд░рддрд╛рдд. рдЕрд╢рд╛ рдЪрд╛рд╡реНрдпрд╛ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдЕрд╕рддрд╛рдд рдЖрдгрд┐ рддреНрдпрд╛ рд╡рд╛рдкрд░реВ рдирдпреЗрдд. GODEBUG рд╕реЗрдЯ рдЕрдк рдХрд░рдд рдЖрд╣реЗ rsa1024min=0 рдЬреБрдиреЗ рд╡рд░реНрддрди рдкреБрдирд░реНрд╕рдВрдЪрдпрд┐рдд рдХрд░рддреЗ, рдкрд░рдВрддреБ рдЧреЛ рдбреЗрд╡реНрд╣рд▓рдкрд░реНрд╕ рд╣реЗ рдлрдХреНрдд рдЖрд╡рд╢реНрдпрдХрддреЗрдиреБрд╕рд╛рд░ рдЖрдгрд┐ рдлрдХреНрдд рдЪрд╛рдЪрдгреНрдпрд╛рдВрдордзреНрдпреЗ рдХрд░рдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддрд╛рдд, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде рдЪрд╛рдЪрдгреА рдлрд╛рдЗрд▓рдордзреНрдпреЗ //go:debug rsa1024min=0 рд╣реА рдУрд│ рдЬреЛрдбреВрди. рдирд╡реАрди рдЙрджрд╛рд╣рд░рдг GenerateKey рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕ рд╕реЛрдкреА рдорд╛рдирдХ реирежреирек-рдмрд┐рдЯ рдЪрд╛рдЪрдгреА рдХреА рдкреНрд░рджрд╛рди рдХрд░рддреЗ.
рдЖрддрд╛ рдХреЙрд▓ рдХрд░рдгреЗ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдЖрдгрд┐ рдХрд╛рд░реНрдпрдХреНрд╖рдо рдЖрд╣реЗ рдкреНрд░рд╛рдпрд╡реНрд╣реЗрдЯрдХреА.рдкреНрд░реАрдХрдВрдкреНрдпреВрдЯ рддреЗ рдкреНрд░рд╛рдпрд╡реНрд╣реЗрдЯрдХреА.рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рд╛. рдЕрд░реНрдзрд╡рдЯ рднрд░рд▓реЗрд▓реНрдпрд╛ рдЙрдкрдХрд░рдгрд╛рдВрдЪреНрдпрд╛ рдЙрдкрд╕реНрдерд┐рддреАрдд рдкреНрд░реАрдХрдВрдкреНрдпреВрдЯ рдЖрддрд╛ рдЬрд▓рдж рд╣реЛрддреЗ. рдкреВрд░реНрд╡рдЧрдгрд┐рдд рдореВрд▓реНрдпреЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде JSON рдордзреВрди рдХреА рдХрд╛рдврддрд╛рдирд╛.
рд╡реНрд╣реЕрд▓рд┐рдбреЗрдЯ рдХреЙрд▓ рди рдХрд░рддрд╛рд╣реА рдкреЕрдХреЗрдЬ рдЖрддрд╛ рдЕрдзрд┐рдХ рдЕрд╡реИрдз рдХреА рдирд╛рдХрд╛рд░рддреЗ, рдЖрдгрд┐ рдЬрдирд░реЗрдЯрдХреА рдЖрддрд╛ рддреБрдЯрд▓реЗрд▓реНрдпрд╛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХрддреЗрдЪреНрдпрд╛ рд╕реНрд░реЛрддрд╛рдВрд╕рд╛рдареА рдирд╡реАрди рддреНрд░реБрдЯреА рдкрд░рдд рдХрд░реВ рд╢рдХрддрд╛рдд. рдлреАрд▓реНрдб рдкреБрд░рд╕реНрдХрд╛рд░ ╨╕ рдкреНрд░реАрдХрдВрдкреНрдпреБрдЯреЗрдб рд╕рдВрд░рдЪрдирд╛ рдкреНрд░рд╛рдпрд╡реНрд╣реЗрдЯрдХреА рдХрд╛рд╣реА рдореВрд▓реНрдпреЗ рдЧрд╣рд╛рд│ рдЕрд╕рддрд╛рдирд╛рд╣реА рдЖрддрд╛ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдкреНрд░рдорд╛рдгрд┐рдд рдХреЗрд▓реА рдЬрд╛рддрд╛рдд. рдЦрд╛рд▓реА рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реНрдпрд╛ RSA рдХреАрдЬрдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЖрдгрд┐ рдХрд╛рдврдгреНрдпрд╛рд╕рд╛рдареА рдХреНрд░рд┐рдкреНрдЯреЛ/x509 рдордзреНрдпреЗ рджреЗрдЦреАрд▓ рдмрджрд▓ рдЖрд╣реЗрдд.
рд╕рд╛рдЗрдирдкреАрдХреЗрд╕реАрдПрд╕резрд╡реНрд╣реАрезрел ╨╕ PKCS1v15 рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рд╛ рдЖрддрд╛ SHA-512/224, SHA-512/256 рдЖрдгрд┐ SHA-3 рд▓рд╛ рд╕рдорд░реНрдерди рджреЗрддреЗ.
рдЬрдирд░реЗрдЯрдХреА рдЖрддрд╛ рдЦрд╛рдЬрдЧреА рдШрд╛рддрд╛рдВрдХ (рдпреБрд▓рд░ рдлрдВрдХреНрд╢рдирдРрд╡рдЬреА рдХрд╛рд░реНрдорд╛рдЗрдХрд▓ рдлрдВрдХреНрд╢рди) рдирд┐рд░реНрдорд╛рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдереЛрдбреА рд╡реЗрдЧрд│реА рдкрджреНрдзрдд рд╡рд╛рдкрд░рддреЗ. рдХреЗрд╡рд│ рдореВрд│ рд╕рдВрдЦреНрдпрд╛рдВрдордзреВрди рдмрд╛рд╣реНрдпрд░рд┐рддреНрдпрд╛ рдХреА рдкреБрдирд░реНрдЬрдиреНрдо рдХрд░рдгрд╛рд░реЗ рджреБрд░реНрдорд┐рд│ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рднрд┐рдиреНрди рдкрд░рдВрддреБ рд╕реБрд╕рдВрдЧрдд рдкрд░рд┐рдгрд╛рдо рджреЗрдК рд╢рдХрддрд╛рдд.
wasm рд╡рд░ рдЖрддрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрдгрд┐ рдЦрд╛рдЬрдЧреА рдХреА рд╡рд░реАрд▓ рдСрдкрд░реЗрд╢рдиреНрд╕ рджреБрдкреНрдкрдЯ рдЬрд▓рдж рдЖрд╣реЗрдд.
рдХреНрд░рд┐рдкреНрдЯреЛ/рд╢рд╛*
- рдХреНрд░рд┐рдкреНрдЯреЛ/sha1: рдкрд░рддрд╛рд╡рд╛ рдореВрд▓реНрдп sha1.рдирд╡реАрди рдЖрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рджреЗрдЦреАрд▓ рд▓рд╛рдЧреВ рдХрд░рддреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ.рдмрд╛рдпрдирд░реАрдЕтАНреЕрдкреЗрдВрдбрд░.
- рдХреНрд░рд┐рдкреНрдЯреЛ/sha256: рдореВрд▓реНрдпреЗ рдкрд░рдд рдХреЗрд▓реА sha256.рдирд╡реАрди ╨╕ sha256.рдиреНрдпреВреиреирек рдЖрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рджреЗрдЦреАрд▓ рд▓рд╛рдЧреВ рдХрд░рд╛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ.рдмрд╛рдпрдирд░реАрдЕтАНреЕрдкреЗрдВрдбрд░.
- рдХреНрд░рд┐рдкреНрдЯреЛ/sha512: рдореВрд▓реНрдпреЗ рдкрд░рдд рдХреЗрд▓реА sha512.рдирд╡реАрди, sha512.рдиреНрдпреВреиреирек, sha512.рдиреНрдпреВ512_224 ╨╕ sha512.рдиреНрдпреВ512_256, рдЖрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рджреЗрдЦреАрд▓ рд▓рд╛рдЧреВ рдХрд░рд╛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ.рдмрд╛рдпрдирд░реАрдЕтАНреЕрдкреЗрдВрдбрд░.
рдЧреБрдкреНрдд/рд╕реВрдХреНрд╖реНрдо
рдирд╡реАрди рдЧреБрдгрд╡рд┐рд╢реЗрд╖ рдбреЗрдЯрд╛ рд╕реНрд╡рддрдВрддреНрд░ рд╡реЗрд│реЗрд╕рд╣ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрд╕рд╣ рдПрдХ рдлрдВрдХреНрд╢рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ рдЬреЗ рдбреЗрдЯрд╛ рдореВрд▓реНрдпрд╛рдЪреНрдпрд╛ рд╡реЗрд│реЗрдЪреНрдпрд╛ рд╕рд╛рдкреЗрдХреНрд╖ рдХрд╛рд╣реА рд╕реВрдЪрдирд╛ рдмрджрд▓рд▓реНрдпрд╛ рдЬрд╛рдд рдирд╛рд╣реАрдд рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рддреЗ. рдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди, рд╕реНрдерд┐рд░ рд╡реЗрд│реЗрдд рдЪрд╛рд▓рдгреНрдпрд╛рд╕рд╛рдареА рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдХреЛрдб рдкреНрд░реЛрд╕реЗрд╕рд░-рд╕реНрддрд░реАрдп рдлрдВрдХреНрд╢рдиреНрд╕рджреНрд╡рд╛рд░реЗ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХреЗрд▓реЗрд▓рд╛ рдирд╛рд╣реА рдЖрдгрд┐ рддреЛ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рд╡реЗрд│реЗрдд рдЪрд╛рд▓рддреЛ рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рддрд╛ рдпреЗрддреЗ. рд╕рдзреНрдпрд╛ WithDataIndependentTiming arm64 рд╡рд░ PSTATE.DIT рдмрд┐рдЯ рд╡рд╛рдкрд░рддреЗ рдЖрдгрд┐ рдЗрддрд░ рд╕рд░реНрд╡ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╡рд░ рдХрд╛рд╣реАрд╣реА рдХрд░рдд рдирд╛рд╣реА. GODEBUG рд╕реЗрдЯ рдЕрдк рдХрд░рдд рдЖрд╣реЗ dataindependenttiming=1 рд╕рдВрдкреВрд░реНрдг Go рдкреНрд░реЛрдЧреНрд░рд╛рдорд╕рд╛рдареА DIT рдореЛрдб рд╕рдХреНрд╖рдо рдХрд░рддреЗ.
рдирд┐рд╖реНрдХрд░реНрд╖ рдПрдХреНрд╕рдУрдЖрд░рдмрд╛рдЗрдЯреНрд╕ рдЗрдирдкреБрдЯрд╕рд╣ рдкреВрд░реНрдгрдкрдгреЗ рдУрд╡реНрд╣рд░рд▓реЕрдк рдЭрд╛рд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ рдХрд┐рдВрд╡рд╛ рдЕрдЬрд┐рдмрд╛рдд рдирд╛рд╣реА. рдкреВрд░реНрд╡реА рд╡рд░реНрддрди рдЕрдиреНрдпрдерд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╡реНрд╣рддреЗ, рддрд░ рдЖрддрд╛ XORBytes рдШрд╛рдмрд░реЗрд▓.
crypto/tls
TLS рд╕рд░реНрд╡реНрд╣рд░ рдЖрддрд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдХреНрд▓рд╛рдпрдВрдЯ рд╣реЕрд▓реЛ (ECH) рд▓рд╛ рд╕рдорд░реНрдерди рджреЗрддреЗ. рд╣реЗ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдлреАрд▓реНрдб рднрд░реВрди рд╕рдХреНрд╖рдо рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рдХреЙрдиреНрдлрд┐рдЧ.рдПрдирдХреНрд░рд┐рдкреНрдЯреЗрдбрдХреНрд▓рд╛рдпрдВрдЯрд╣реЕрд▓реЛрдХреАрдЬ.
рдХреНрд╡рд╛рдВрдЯрдордирдВрддрд░рдЪреА рдПрдХ рдирд╡реАрди рдХреА рдПрдХреНрд╕рдЪреЗрдВрдЬ рдпрдВрддреНрд░рдгрд╛ X25519MLKEM768 рд▓рдХреНрд╖ рджреНрдпрд╛ рдЖрддрд╛ рд╕рдорд░реНрдерд┐рдд рдЖрдгрд┐ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рд╕рдХреНрд╖рдо рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдЬреЗрд╡реНрд╣рд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди.рдХрд░реНрд╡реНрд╣рдкреНрд░рд┐рдлрд░реЗрдиреНрд╕реЗрд╕ рд╢реВрдиреНрдп рдЖрд╣реЗ. GODEBUG рд╕реЗрдЯ рдЕрдк рдХрд░рдд рдЖрд╣реЗ tlsmlkem=0 рдбреАрдлреЙрд▓реНрдЯ рдкрд░рдд рдХрд░рддреЗ.
рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ X25519Kyber768Draft00 рдХреА рдПрдХреНрд╕рдЪреЗрдВрдЬрд╕рд╛рдареА рд╕рдорд░реНрдерди рдХрд╛рдвреВрди рдЯрд╛рдХрдгреНрдпрд╛рдд рдЖрд▓реЗ рдЖрд╣реЗ.
рдХреА рдПрдХреНрд╕рдЪреЗрдВрдЬ рдСрд░реНрдбрд░ рдЖрддрд╛ рдкреВрд░реНрдгрдкрдгреЗ рдХреНрд░рд┐рдкреНрдЯреЛ/рдЯреАрдПрд▓рдПрд╕ рдкреЕрдХреЗрдЬрджреНрд╡рд╛рд░реЗ рд╣рд╛рддрд╛рд│рд▓реА рдЬрд╛рддреЗ. рдСрд░реНрдбрд░ рдХрд░рд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди.рдХрд░реНрд╡реНрд╣рдкреНрд░рд┐рдлрд░реЗрдиреНрд╕реЗрд╕ рдЖрддрд╛ рджреБрд░реНрд▓рдХреНрд╖рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рдлреАрд▓реНрдб рднрд░рд▓реНрдпрд╛рд╡рд░ рдХреЛрдгрддреНрдпрд╛ рдХреА рдПрдХреНрд╕рдЪреЗрдВрдЬреЗрд╕ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рд╛рдпрдЪреНрдпрд╛ рд╣реЗ рдард░рд╡рдгреНрдпрд╛рд╕рд╛рдареАрдЪ рддреНрдпрд╛рддреАрд▓ рдордЬрдХреВрд░ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ.
рдирд╡реАрди рдлреАрд▓реНрдб рдХреНрд▓рд╛рдпрдВрдЯрд╣реЕрд▓реЛрдЗрдиреНрдлреЛ.рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреНрд▓рд╛рдпрдВрдЯ рд╣реЕрд▓реЛ рдореЗрд╕реЗрдЬрдордзреНрдпреЗ рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реЗрд▓реНрдпрд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЖрдпрдбреЗрдВрдЯрд┐рдлрд╛рдпрд░реНрд╕рдЪреА рдпрд╛рджреА рджрд░реНрд╢рд╡рддреЗ. рд╣реЗ TLS рдХреНрд▓рд╛рдпрдВрдЯрдЪреНрдпрд╛ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧрд╕рд╛рдареА рдЙрдкрдпреБрдХреНрдд рдард░реВ рд╢рдХрддреЗ.
рдХреНрд░рд┐рдкреНрдЯреЛ/x509
GODEBUG рд╕реЗрдЯ рдЕрдк рдХрд░рдд рдЖрд╣реЗ x509sha1 рдХрд╛рдвреВрди рдЯрд╛рдХрдгреНрдпрд╛рдд рдЖрд▓рд╛ рдЖрд╣реЗ. рдкреНрд░рдорд╛рдгрди. рдкрдбрддрд╛рд│рдгреА рдХрд░рд╛ рдЖрддрд╛ SHA-1 рдЖрдзрд╛рд░рд┐рдд рд╕реНрд╡рд╛рдХреНрд╖рд▒реНрдпрд╛рдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрдд рдирд╛рд╣реА.
OID рдЖрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рд▓рд╛рдЧреВ рдХрд░рддреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ.рдмрд╛рдпрдирд░реАрдЕтАНреЕрдкреЗрдВрдбрд░ ╨╕ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ.рдЯреЗрдХреНрд╕реНрдЯрдЕтАНреЕрдкреЗрдВрдбрд░.
рдбреАрдлреЙрд▓реНрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдзреЛрд░рдг рдлреАрд▓реНрдб рдпреЗрдереВрди рдмрджрд▓рд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░. рдзреЛрд░рдг рдУрд│рдЦрдХрд░реНрддреЗ рд╡рд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░. рдзреЛрд░рдгреЗ. рдкреНрд░рдорд╛рдгрдкрддреНрд░реЗ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛рдирд╛, рджреЛрдиреНрд╣реА рдлреАрд▓реНрдб рднрд░рд▓реНрдпрд╛ рдЬрд╛рддреАрд▓, рдкрд░рдВрддреБ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдзреЛрд░рдг рддрдпрд╛рд░ рдХрд░рддрд╛рдирд╛, рддреЗ Certificate.PolicyIdentifiers рдРрд╡рдЬреА Certificate.Policies рдлреАрд▓реНрдбрдордзреВрди рдШреЗрддрд▓реЗ рдЬрд╛рддреАрд▓. рд╣рд╛ рдмрджрд▓ рдкреВрд░реНрд╡рд╡рдд рдХрд░рддрд╛ рдпреЗрддреЛ. GODEBUG рд╕реЗрдЯрдЕрдк x509 рд╡рд╛рдкрд░ рдзреЛрд░рдгреЗ=0.
рдкреНрд░рдорд╛рдгрдкрддреНрд░ рддрдпрд╛рд░ рдХрд░рд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдлреАрд▓реНрдб рдкрд╛рд╕ рдХрд░рддрд╛рдирд╛ рдЖрддрд╛ RFC 5280 рдЕрдиреБрд░реВрдк рдкрджреНрдзрддреАрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рдПрдХ рд╕рд┐рд░реАрдпрд▓ рдирдВрдмрд░ рддрдпрд╛рд░ рдХрд░реЗрд▓. рдкреНрд░рдорд╛рдгрдкрддреНрд░.рд╕рд┐рд░реАрдпрд▓рдХреНрд░рдорд╛рдВрдХ рдХреНрд░реЕрд╢ рд╣реЛрдгреНрдпрд╛рдРрд╡рдЬреА, рд╢реВрдиреНрдп.
рдкреНрд░рдорд╛рдгрдкрддреНрд░. рдкрдбрддрд╛рд│рдгреА рдХрд░рд╛ рдЖрддрд╛ RFC 5280 рдЖрдгрд┐ RFC 9618 рдордзреНрдпреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рдзреЛрд░рдг рдкреНрд░рдорд╛рдгреАрдХрд░рдгрд╛рдЪреЗ рд╕рдорд░реНрдерди рдХрд░рддреЗ. рдирд╡реАрди рдлреАрд▓реНрдб рдкрд░реНрдпрд╛рдпрд╛рдВрдЪреА рдкрдбрддрд╛рд│рдгреА рдХрд░рд╛.рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдзреЛрд░рдгреЗ рд╕реНрд╡реАрдХрд╛рд░рд╛рд░реНрд╣ рдзреЛрд░рдгрд╛рдВрдЪреНрдпрд╛ рд╕рдВрдЪрд╛рд╡рд░ рд╕реЗрдЯ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдУрдЖрдпрдбреА. рдлрдХреНрдд рд╡реИрдз рдкреЙрд▓рд┐рд╕реА рдЧреНрд░рд╛рдл рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рд╛рдЦрд│реНрдпрд╛ рдпреЗрдереВрди рдкрд░рдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддреАрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░. рдкрдбрддрд╛рд│рдгреА рдХрд░рд╛.
рдорд╛рд░реНрд╢рд▓рдкреАрдХреЗрд╕реАрдПрд╕реордкреНрд░рд╛рдпрд╡реНрд╣реЗрдЯрдХреА рдЖрддрд╛ рдЕрд╡реИрдз RSA рдХреА рдорд┐рд│рд╡рдгреНрдпрд╛рдРрд╡рдЬреА рддреНрд░реБрдЯреА рдкрд░рдд рдХрд░рддреЗ. (рдорд╛рд░реНрд╢рд▓рдкреАрдХреЗрд╕реАрдПрд╕реордкреНрд░рд╛рдпрд╡реНрд╣реЗрдЯрдХреА (рдХреЛрдгрддреАрд╣реА рддреНрд░реБрдЯреА рдкрд░рдд рдорд┐рд│рдд рдирд╛рд╣реА рдЖрдгрд┐ рдЕрд╡реИрдз рдХреА рдкреНрд░рджрд╛рди рдХреЗрд▓реНрдпрд╛рд╡рд░ рддреНрдпрд╛рдЪреЗ рд╡рд░реНрддрди рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд░рд╛рд╣рддреЗ.)
рдкрд╛рд░реНрд╕рдкреАрдХреЗрд╕реАрдПрд╕резрдкреНрд░рд╛рдпрд╡реНрд╣реЗрдЯрдХреА ╨╕ рдкрд╛рд░реНрд╕рдкреАрдХреЗрд╕реАрдПрд╕резрдкреНрд░рд╛рдпрд╡реНрд╣реЗрдЯрдХреА рдЖрддрд╛ рдПрдиреНрдХреЛрдбреЗрдб CRT рдореВрд▓реНрдпреЗ рд╡рд╛рдкрд░рд╛ рдЖрдгрд┐ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рд╛, рдЬреЗрдгреЗрдХрд░реВрди рдкреВрд░реНрд╡реА рд╕реНрд╡реАрдХрд╛рд░рд▓реЗрд▓реНрдпрд╛ рдЕрд╡реИрдз RSA рдХреА рдирд╛рдХрд╛рд░рддрд╛ рдпреЗрддреАрд▓. рд╡рд╛рдкрд░ GODEBUG рд╕реЗрдЯрд┐рдВрдЧреНрдЬ x509rsacrt=0 CRT рдореВрд▓реНрдпрд╛рдВрдЪреНрдпрд╛ рдкреБрдирд░реНрдЧрдгрдиреЗрдХрдбреЗ рдкрд░рдд рдпреЗрддреЗ.
рдбреАрдмрдЧ/рдПрд▓реНрдл
рдкреЕрдХреЗрдЬ рдбреАрдмрдЧ/рдПрд▓реНрдл рдбрд╛рдпрдиреЕрдорд┐рдХ ELF (рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдЖрдгрд┐ рд▓рд┐рдВрдХреЗрдмрд▓ рдлреЙрд░рдореЕрдЯ) рдлрд╛рдпрд▓реАрдВрдордзреНрдпреЗ рдкреНрд░рддреАрдХ рдЖрд╡реГрддреНрддреНрдпрд╛ рд╣рд╛рддрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрддреЗ. рдирд╡реАрди рдкрджреНрдзрдд рдлрд╛рдЗрд▓.рдбрд╛рдпрдиреЕрдорд┐рдХрд╡реНрд╣рд░реНрд╢рди ELF рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдбрд╛рдпрдиреЕрдорд┐рдХ рдЖрд╡реГрддреНрддреНрдпрд╛рдВрдЪреА рдпрд╛рджреА рдорд┐рд│рд╡рддреЗ. рдирд╡реАрди рдкрджреНрдзрдд рдлрд╛рдЗрд▓.рдбрд╛рдпрдиреЕрдорд┐рдХрд╡реНрд╣рд░реНрдЬрдирдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ рдпрд╛ ELF рдлрд╛рдИрд▓рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдбрд╛рдпрдиреЕрдорд┐рдХ рдЖрд╡реГрддреНрддреНрдпрд╛рдВрдЪреА рдпрд╛рджреА рдкрд░рдд рдХрд░рддреЗ рдЬреА рдЗрддрд░ ELF рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдордзреНрдпреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реА рдЖрд╣реЗ. рд╢реЗрд╡рдЯреА, рдирд╡реАрди рдХреНрд╖реЗрддреНрд░реЗ рдкреНрд░рддреАрдХ.рд╣реЕрд╕рд╡реНрд╣рд░реНрд╢рди ╨╕ рдкреНрд░рддреАрдХ.рдЖрд╡реГрддреНрддреА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдЪрд┐рдиреНрд╣рд╛рдЪреА рдЖрд╡реГрддреНрддреА рджрд░реНрд╢рд╡рд╛.
рдПрдиреНрдХреЛрдбрд┐рдВрдЧ
рджреЛрди рдирд╡реАрди рдЗрдВрдЯрд░рдлреЗрд╕ рдЯреЗрдХреНрд╕реНрдЯрдЕтАНреЕрдкреЗрдВрдбрд░ ╨╕ рдмрд╛рдпрдирд░реА рдЕрдкреЗрдВрдбрд░ рдмрд╛рдЗрдЯ рд╕реНрд▓рд╛рдЗрд╕рдордзреНрдпреЗ рдСрдмреНрдЬреЗрдХреНрдЯрдЪреЗ рдЯреЗрдХреНрд╕реНрдЯ рдХрд┐рдВрд╡рд╛ рдмрд╛рдпрдирд░реА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА рд╕рд╛рджрд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ. рд╣реЗ рдЗрдВрдЯрд░рдлреЗрд╕ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛рдд рдЬрд╕реЗ рдХреА рдЯреЗрдХреНрд╕реНрдЯрдорд╛рд░реНрд╢рд▓рд░ ╨╕ рдмрд╛рдпрдирд░реА рдорд╛рд░реНрд╢рд▓рд░, рдкрд░рдВрддреБ рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рдирд╡реАрди рд╕реНрд▓рд╛рдЗрд╕ рд╡рд╛рдЯрдк рдХрд░рдгреНрдпрд╛рдРрд╡рдЬреА, рддреЗ рдереЗрдЯ рд╡рд┐рджреНрдпрдорд╛рди рд╕реНрд▓рд╛рдЗрд╕рдордзреНрдпреЗ рдбреЗрдЯрд╛ рдЬреЛрдбрддрд╛рдд. рд╣реЗ рдЗрдВрдЯрд░рдлреЗрд╕ рд╕рдзреНрдпрд╛ рдорд╛рдирдХ рд▓рд╛рдпрдмреНрд░рд░реА рдкреНрд░рдХрд╛рд░рд╛рдВрджреНрд╡рд╛рд░реЗ рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реЗ рдЬрд╛рддрд╛рдд рдЬреЗ рдЖрдзреАрдЪ TextMarshaler рдЖрдгрд┐/рдХрд┐рдВрд╡рд╛ BinaryMarshaler рдЕрдВрдорд▓рд╛рдд рдЖрдгрддрд╛рдд.
рдПрдиреНрдХреЛрдбрд┐рдВрдЧ/рдЬреЗрд╕рди
рдмрд╛рдВрдзрдХрд╛рдо рдХрд░рддрд╛рдирд╛, рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдлреАрд▓реНрдб рдЯреЕрдЧрдордзреНрдпреЗ рдирд╡реАрди omitzero рдкрд░реНрдпрд╛рдп рдЕрд╕рд▓реЗрд▓реЗ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдлреАрд▓реНрдб рд╡рдЧрд│рд▓реЗ рдЬрд╛рдИрд▓ рдЬрд░ рддреНрдпрд╛рдЪреЗ рдореВрд▓реНрдп рд╢реВрдиреНрдп рдЕрд╕реЗрд▓. рдЬрд░ рдлреАрд▓реНрдб рдкреНрд░рдХрд╛рд░рд╛рдд IsZero() bool рдкрджреНрдзрдд рдЕрд╕реЗрд▓, рддрд░ рддреА рдореВрд▓реНрдп рд╢реВрдиреНрдп рдЖрд╣реЗ рдХреА рдирд╛рд╣реА рд╣реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдИрд▓. рдЕрдиреНрдпрдерд╛ рдореВрд▓реНрдп рд╢реВрдиреНрдп рдЕрд╕реЗрд▓ рдЬрд░ рддреЗ рддреНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░рдХрд╛рд░рд╛рд╕рд╛рдареА рд╢реВрдиреНрдп рдореВрд▓реНрдп. рдЬреЗрд╡реНрд╣рд╛ рд╢реВрдиреНрдп рдореВрд▓реНрдпреЗ рд╡рдЧрд│рдгреНрдпрд╛рдЪрд╛ рд╣реЗрддреВ рдЕрд╕рддреЛ рддреЗрд╡реНрд╣рд╛ omitzero рдлреАрд▓реНрдб рдЯреЕрдЧ omitempty рдкреЗрдХреНрд╖рд╛ рдЕрдзрд┐рдХ рд╕реНрд╡рдЪреНрдЫ рдЖрдгрд┐ рдХрдореА рддреНрд░реБрдЯреА-рдкреНрд░рд╡рдг рдЕрд╕рддреЛ. рд╡рд┐рд╢реЗрд╖рддрдГ, omitempty рдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд, omitzero рд╢реВрдиреНрдп рд╡рдЧрд│рддреЗ рд╡реЗрд│.рд╡реЗрд│ рдореВрд▓реНрдпреЗ, рдЬреА рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрд░реЛрдд рдЖрд╣реЗ.
рдЬрд░ omitempty рдЖрдгрд┐ omitzero рджреЛрдиреНрд╣реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЕрд╕рддреАрд▓, рддрд░ рдореВрд▓реНрдп рд░рд┐рдХрд╛рдореЗ рдХрд┐рдВрд╡рд╛ рд╢реВрдиреНрдп (рдХрд┐рдВрд╡рд╛ рджреЛрдиреНрд╣реА) рдЕрд╕рд▓реНрдпрд╛рд╕ рдлреАрд▓реНрдб рд╡рдЧрд│рд▓реЗ рдЬрд╛рдИрд▓.
рдЕрдирдорд╛рд░реНрд╢рд▓рдЯрд╛рдЗрдкрдПрд░рд░.рдлреАрд▓реНрдб рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓рд╡рд╛рд░ рддреНрд░реБрдЯреА рд╕рдВрджреЗрд╢ рдкреНрд░рджрд╛рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрддрд╛ рдЕрдВрдЧрднреВрдд рд╕рдВрд░рдЪрдирд╛ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд.
рдЧреЛ/рдЯрд╛рдЗрдкреНрд╕
рд╕рд░реНрд╡ go/types рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрд╕ рдЬреЗ Len() int рдЖрдгрд┐ At(int) T рд╕рд╛рд░рдЦреНрдпрд╛ рдкрджреНрдзрддреАрдВрдЪреНрдпрд╛ рдЬреЛрдбреАрдВрдЪреЗ рдЕрдиреБрдХреНрд░рдо рдЙрдШрдб рдХрд░рддрд╛рдд, рддреНрдпрд╛рдд рдЖрддрд╛ рдЕрд╢рд╛ рдкрджреНрдзрддреА рджреЗрдЦреАрд▓ рдЖрд╣реЗрдд рдЬреНрдпрд╛ рдЗрдЯрд░реЗрдЯрд░ рдкрд░рдд рдХрд░рддрд╛рдд, рдЬреНрдпрд╛рдореБрд│реЗ рдпрд╛рд╕рд╛рд░рдЦреЗ рд╕реЛрдкреЗ рдХреЛрдб рдорд┐рд│реВ рд╢рдХрддрд╛рдд:
i рд╕рд╛рдареА рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ := fn.Type.(*types.Signature).Params() := 0; i < рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕.рд▓реЗрди(); i++ { рд╡рд╛рдкрд░рд╛(рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕.рдЕреЕрдЯ(i)) }
рдпрд╛рд╡рд░:
рдкреЕрд░рд╛рдорд╕рд╛рдареА := рд░реЗрдВрдЬ fn.рд╕рд┐рдЧреНрдиреЗрдЪрд░().рдкреЕрд░рд╛рдо().рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕() { рд╡рд╛рдкрд░(рдкреЕрд░рд╛рдо) }
рдкрджреНрдзрддреА: рдЗрдВрдЯрд░рдлреЗрд╕.рдПрдореНрдмреЗрдбреЗрдб рдкреНрд░рдХрд╛рд░ рдЗрдВрдЯрд░рдлреЗрд╕.рд╕реНрдкрд╖реНрдЯ рдкрджреНрдзрддреА рдЗрдВрдЯрд░рдлреЗрд╕.рдкрджреНрдзрддреА рдкрджреНрдзрддрд╕реЗрдЯ.рдкрджреНрдзрддреА рдирд╛рд╡ рджрд┐рд▓реЗ. рдкрджреНрдзрддреА рд╡реНрдпрд╛рдкреНрддреА. рдореБрд▓реЗ рд░рдЪрдирд╛.рдлреАрд▓реНрдб рдЯрдкрд▓.рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рдкреНрд░рдХрд╛рд░ рдпрд╛рджреА. рдкреНрд░рдХрд╛рд░ рдкреНрд░рдХрд╛рд░ рдкреЕрд░рд╛рдорд▓рд┐рд╕реНрдЯ. рдкреНрд░рдХрд╛рд░ рдкреЕрд░рд╛рдореНрд╕ рдпреБрдирд┐рдпрди.рдЕрдЯреА
рд╣реЕрд╢/*
- рд╣реЕрд╢/рдЕтАНреЕрдбрд▓рд░рейреи: рдкрд░рддрд╛рд╡рд╛ рдореВрд▓реНрдп рдирд╡реАрди, рдЖрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рджреЗрдЦреАрд▓ рд▓рд╛рдЧреВ рдХрд░рддреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ.рдмрд╛рдпрдирд░реАрдЕтАНреЕрдкреЗрдВрдбрд░
- рд╣реЕрд╢/рдХреНрд░рд┐рдХрейреи: рдореВрд▓реНрдпреЗ рдкрд░рдд рдХреЗрд▓реА рдирд╡реАрди ╨╕ рдиреНрдпреВрдЖрдпрдИрдИрдИ, рдЖрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рджреЗрдЦреАрд▓ рд▓рд╛рдЧреВ рдХрд░рд╛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ.рдмрд╛рдпрдирд░реАрдЕтАНреЕрдкреЗрдВрдбрд░
- рд╣реЕрд╢/рдХреНрд░рд┐рдХрейреи: рдкрд░рддрд╛рд╡рд╛ рдореВрд▓реНрдп рдирд╡реАрди, рдЖрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рджреЗрдЦреАрд▓ рд▓рд╛рдЧреВ рдХрд░рддреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ.рдмрд╛рдпрдирд░реАрдЕтАНреЕрдкреЗрдВрдбрд░
- рд╣реЕрд╢/рдПрдлрдПрдирд╡реНрд╣реА: рдореВрд▓реНрдпреЗ рдкрд░рдд рдХреЗрд▓реА New32 рдиреНрдпреВрейреирдП New64 рдиреНрдпреВрейреирдП New128 ╨╕ рдиреНрдпреВрейреирдП, рдЖрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рджреЗрдЦреАрд▓ рд▓рд╛рдЧреВ рдХрд░рд╛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ.рдмрд╛рдпрдирд░реАрдЕтАНреЕрдкреЗрдВрдбрд░
- рд╣реЕрд╢/рдореЕрдлреЕрд╢: рдирд╡реАрди рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рддреБрд▓рдирд╛рддреНрдордХ ╨╕ рддреБрд▓рдирд╛рддреНрдордХ рд▓рд┐рд╣рд╛ рддреБрд▓рдирд╛ рдХрд░рддрд╛ рдпреЗрдгрд╛рд▒реНрдпрд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдореВрд▓реНрдпрд╛рдЪреНрдпрд╛ рд╣реЕрд╢рдЪреА рдЧрдгрдирд╛ рдХрд░реВ рд╢рдХрддреЗ. рд╣реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдЧреЛ рдбрд┐рдХреНрд╢рдирд░реА рдХреА рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рддрд╛ рдпреЗрдгрд╛рд░реА рдХреЛрдгрддреАрд╣реА рдЧреЛрд╖реНрдЯ рд╣реЕрд╢ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ.
рд▓реЙрдЧ/рд╕реНрд▓реЙрдЧ
рдирд╡реАрди рд╣рдБрдбрд▓рд░ рдХрд╛рдвреВрди рдЯрд╛рдХрд╛ рд╣рд╛ рдПрдХ рд╣рдБрдбрд▓рд░ рдЖрд╣реЗ рдЬреЛ рдХрдзреАрд╣реА рд╕рдХреНрд╖рдо рдХреЗрд▓рд╛ рдЬрд╛рдд рдирд╛рд╣реА рдЖрдгрд┐ рдиреЗрд╣рдореАрдЪ рддреНрдпрд╛рдЪреЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛рдвреВрди рдЯрд╛рдХрддреЛ.
рдкрд╛рддрд│реА ╨╕ рд▓реЗрд╡реНрд╣рд▓рд╡рд╛рд░ рдЖрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рд╛. рдПрдиреНрдХреЛрдбрд┐рдВрдЧ.рдЯреЗрдХреНрд╕реНрдЯрдЕтАНреЕрдкреЗрдВрдбрд░.
рдЧрдгрд┐рдд/*
- рдЧрдгрд┐рдд/рдореЛрдареЗ: рдлреНрд▓реЛрдЯ, Int ╨╕ рдЙрдВрджреАрд░ рдЖрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рд╛. рдПрдиреНрдХреЛрдбрд┐рдВрдЧ.рдЯреЗрдХреНрд╕реНрдЯрдЕтАНреЕрдкреЗрдВрдбрд░.
- рдЧрдгрд┐рдд/рд░рдБрдб: рдХрд╛рд▓рдмрд╛рд╣реНрдп рдЭрд╛рд▓реЗрд▓реЗ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдлрдВрдХреНрд╢рди рдХреЙрд▓ рдмреАрдЬ рдЖрддрд╛ рдХреЛрдгрддрд╛рд╣реА рдкрд░рд┐рдгрд╛рдо рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА. рдЬреБрдиреЗ рд╡рд░реНрддрди рдкреБрдирд░реНрд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣реА рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛ GODEBUG рд╕реЗрдЯрдЕрдк рд░рдБрдбрд╕реАрдбрдиреЙрдк=реж. рдЕрдзрд┐рдХ рд╕рдВрджрд░реНрдн рдСрдлрд░ ремренреиренрей.
- math/rand/v2: рдЪрд╛рдЪрд╛рдПрдХреНрд╕рдПрдирдПрдХреНрд╕ ╨╕ PCG рдЖрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рд╛. рдПрдиреНрдХреЛрдбрд┐рдВрдЧ.рдмрд╛рдпрдирд░реАрдЕтАНреЕрдкреЗрдВрдбрд░.
рдирд┐рд╡реНрд╡рд│
рд▓рд┐рд╕рдирдХреЙрдиреНрдбрд┐рдЧ рдЖрддрд╛ MPTCP рд╕рдорд░реНрдерд┐рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдкреНрд░рдгрд╛рд▓реАрдВрд╡рд░ (рд╕рдзреНрдпрд╛ рдлрдХреНрдд Linux рд╡рд░) рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рд╡рд╛рдкрд░рддреЗ.
IP рдЖрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рд▓рд╛рдЧреВ рдХрд░рддреЛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ.рдЯреЗрдХреНрд╕реНрдЯрдЕтАНреЕрдкреЗрдВрдбрд░.
рдиреЗрдЯ/http
рдирд┐рд░реНрдмрдВрдз рдмрджрд▓рд▓реЗ рдЖрд╣реЗрдд. рд╡рд╛рд╣рддреВрдХ рд╡рд┐рдирдВрддреАрд▓рд╛ рдкреНрд░рддрд┐рд╕рд╛рдж рдореНрд╣рдгреВрди рдорд┐рд│рд╛рд▓реЗрд▓реНрдпрд╛ резxx рдорд╛рд╣рд┐рддреА рдкреНрд░рддрд┐рд╕рд╛рджрд╛рдВрдирд╛. рдкреВрд░реНрд╡реА рд╣реЗ рд╡рд┐рдирдВрддреА рдерд╛рдВрдмрд╡рдд рдЕрд╕реЗ рдЖрдгрд┐ рел рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд резxx рдкреНрд░рддрд┐рд╕рд╛рдж рдорд┐рд│рд╛рд▓реНрдпрд╛рд╡рд░ рддреНрд░реБрдЯреА рдкрд░рдд рдХрд░рдд рдЕрд╕реЗ. рдЬрд░ рд╕рд░реНрд╡ 1xx рдкреНрд░рддрд┐рд╕рд╛рджрд╛рдВрдЪрд╛ рдПрдХреВрдг рдЖрдХрд╛рд░ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧрдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдЕрд╕реЗрд▓ рддрд░рдЪ рд╣реЗ рддреНрд░реБрдЯреА рдкрд░рдд рдХрд░рддреЗ. рдЯреНрд░рд╛рдиреНрд╕рдкреЛрд░реНрдЯ.рдореЕрдХреНрд╕рд░реЗрд╕реНрдкреЙрдиреНрд╕рд╣реЗрдбрд░рдмрд╛рдЗрдЯреНрд╕.
рддрд╕реЗрдЪ, рдЬреЗрд╡реНрд╣рд╛ рдПрдЦрд╛рджреНрдпрд╛ рд╡рд┐рдирдВрддреАрдордзреНрдпреЗ рдЯреНрд░реЕрдХрд┐рдВрдЧ рд╣реБрдХ рдЕрд╕рддреЛ рдиреЗрдЯ/http/httptrace.рдХреНрд▓рд╛рдпрдВрдЯрдЯреНрд░реЗрд╕.Got1xxрдкреНрд░рддрд┐рд╕рд╛рдж, рдЖрддрд╛ рдПрдХреВрдг рдЙрддреНрддрд░рд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ 1xx рд╡рд░ рдорд░реНрдпрд╛рджрд╛ рдирд╛рд╣реА. рд╡рд┐рдирдВрддреА рдерд╛рдВрдмрд╡рдгреНрдпрд╛рд╕рд╛рдареА Got1xxResponse рд╣реБрдХ рдПрд░рд░ рдкрд░рдд рдХрд░реВ рд╢рдХрддреЛ.
рд╡рд╛рд╣рддреВрдХ ╨╕ рд╕рд░реНрд╡реНрд╣рд░ рдЖрддрд╛ рдПрдХ HTTP2 рдлреАрд▓реНрдб рдЖрд╣реЗ рдЬреЗ HTTP/2 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.
рдирд╡реАрди рдлреАрд▓реНрдб рд╕рд░реНрд╡реНрд╣рд░.рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ╨╕ рд╡рд╛рд╣рддреВрдХ.рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕рд░реНрд╡реНрд╣рд░ рдХрд┐рдВрд╡рд╛ рдХреНрд▓рд╛рдпрдВрдЯ рдХреЛрдгрддреЗ HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╡рд╛рдкрд░рддрд╛рдд рддреЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдПрдХ рд╕реЛрдкрд╛ рдорд╛рд░реНрдЧ рдкреНрд░рджрд╛рди рдХрд░рддреЗ.
рд╕рд░реНрд╡реНрд╣рд░ рдЖрдгрд┐ рдХреНрд▓рд╛рдпрдВрдЯ рд╣реЗ рдПрдирдХреНрд░рд┐рдкреНрдЯреЗрдб HTTP/2 рдХрдиреЗрдХреНрд╢рдирдирд╛ рд╕рдорд░реНрдерди рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд.
рдЬреЗрд╡реНрд╣рд╛ рд╕рд░реНрд╡реНрд╣рд░.рдкреНрд░реЛрдЯреЛрдХреЙрд▓ UnencrypterHTTP2 рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ, рд╕рд░реНрд╡реНрд╣рд░ рдЕрдирдПрдирдХреНрд░рд┐рдкреНрдЯреЗрдб рдкреЛрд░реНрдЯрд╡рд░ HTTP/2 рдХрдиреЗрдХреНрд╢рди рд╕реНрд╡реАрдХрд╛рд░реЗрд▓. рд╕рд░реНрд╡реНрд╣рд░ рдПрдХрд╛рдЪ рдкреЛрд░реНрдЯрд╡рд░ HTTP/1 рдЖрдгрд┐ рдЕрдирдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб HTTP/2 рджреЛрдиреНрд╣реА рд╕реНрд╡реАрдХрд╛рд░реВ рд╢рдХрддреЛ.
рдЬреЗрд╡реНрд╣рд╛ рд╡рд╛рд╣рддреВрдХ.рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЕрдирдЗрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдбHTTP2 рдЖрд╣реЗ рдЖрдгрд┐ HTTP1 рдирд╛рд╣реА, рдЯреНрд░рд╛рдиреНрд╕рдкреЛрд░реНрдЯ рдкрддреНрддреНрдпрд╛рдВрд╕рд╛рдареА рдЕрдирдЗрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб HTTP/2 рд╡рд╛рдкрд░реЗрд▓ http://. рдЬрд░ рдПрдЦрд╛рджреЗ рдЯреНрд░рд╛рдиреНрд╕рдкреЛрд░реНрдЯ HTTP/1 рдЖрдгрд┐ рдЕрдирдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб HTTP/2 рджреЛрдиреНрд╣реА рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдЕрд╕реЗрд▓, рддрд░ рддреЗ HTTP/1 рд╡рд╛рдкрд░реЗрд▓.
рдПрдирдХреНрд░рд┐рдкреНрдЯреЗрдб HTTP/2 рд╕рд╛рдареА рд╕рдорд░реНрдерди "HTTP/2 with Forward-Learning" (RFC 9113, рд╡рд┐рднрд╛рдЧ 3.3) рд╡рд╛рдкрд░рддреЗ. рдХрд╛рд▓рдмрд╛рд╣реНрдп рдЭрд╛рд▓реЗрд▓реЗ рд╣реЗрдбрд░ тАЬрдЕрдкрдЧреНрд░реЗрдб: h2cтАЭ рд╕рдорд░реНрдерд┐рдд рдирд╛рд╣реА.
рдиреЗрдЯ/рдиреЗрдЯрд┐рдк
рдПрдбреАрдЖрд░, рдЕреЕрдбреНрд░рдкреЛрд░реНрдЯ ╨╕ рдЙрдкрд╕рд░реНрдЧ рдЖрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рд▓рд╛рдЧреВ рдХрд░рд╛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ.рдмрд╛рдпрдирд░реАрдЕтАНреЕрдкреЗрдВрдбрд░ ╨╕ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ.рдЯреЗрдХреНрд╕реНрдЯрдЕтАНреЕрдкреЗрдВрдбрд░.
рдиреЗрдЯ/рдпреВрдЖрд░рдПрд▓
URL рдЖрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рджреЗрдЦреАрд▓ рд▓рд╛рдЧреВ рдХрд░рддреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ.рдмрд╛рдпрдирд░реАрдЕтАНреЕрдкреЗрдВрдбрд░.
рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо/рд╡рд╛рдкрд░рдХрд░реНрддрд╛
рд╡рд┐рдВрдбреЛрдЬрд╡рд░ рдЪрд╛рд▓реВ рдЖрддрд╛ рд╡рд┐рдВрдбреЛрдЬ рдиреЕрдиреЛ рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рд╡рд╛рдкрд░рддрд╛ рдпреЗрддреЗ. рдиреЕрдиреЛ рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдирд╕рд▓реЗрд▓реНрдпрд╛ NetApi32 рд▓рд╛рдпрдмреНрд░рд░реАрдордзреАрд▓ рдлрдВрдХреНрд╢рдиреНрд╕ рд╡рд╛рдкрд░рдгреЗ рдЯрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЕрдкрдбреЗрдЯ рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ.
рд╡рд┐рдВрдбреЛрдЬрд╡рд░ рдЪрд╛рд▓реВ, рд▓реВрдХрдЕрдк ╨╕ рд▓реБрдХрдЕрдк рдЖрдпрдбреА рдЖрддрд╛ рдЦрд╛рд▓реАрд▓ рдмрд┐рд▓реНрдЯ-рдЗрди рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд╕реЗрд╡рд╛ рдЦрд╛рддреНрдпрд╛рдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрддреЗ:
- рдПрдирдЯреА рдкреНрд░рд╛рдзрд┐рдХрд░рдг
- рдПрдирдЯреА рдЕрдзрд┐рдХреГрдд рд╕реЗрд╡рд╛
- рдПрдирдЯреА рдкреНрд░рд╛рдзрд┐рдХреГрдд рд╕реЗрд╡рд╛ рд╕реЗрд╡рд╛
рд╡рд┐рдВрдбреЛрдЬрд╡рд░ рдЪрд╛рд▓реВ рдЬреЗрд╡реНрд╣рд╛ рд╕рдзреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд╕реНрд▓реЛ рдбреЛрдореЗрдирд╢реА рдЬреЛрдбрд▓рд╛ рдЬрд╛рддреЛ рддреЗрд╡реНрд╣рд╛ рддреНрдпрд╛рдЪрд╛ рд╡реЗрдЧ рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рд╡рд╛рдврддреЛ, рдЬреЛ рдЕрдиреЗрдХ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрд╕рд╛рдареА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХреЗрд╕ рдЖрд╣реЗ. рдирд╡реАрди рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреА рдХрд╛рдордЧрд┐рд░реА рдЖрддрд╛ рдорд╛рдЧреАрд▓ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рдорд┐рд▓рд┐рд╕реЗрдХрдВрджрд╛рдВрдЪреНрдпрд╛ рдХреНрд░рдорд╛рдиреЗ рдЖрд╣реЗ, рдЬреА рдкреВрд░реНрдг рд╣реЛрдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рд╣реА рд╕реЗрдХрдВрдж, рдЕрдЧрджреА рдорд┐рдирд┐рдЯреЗ рджреЗрдЦреАрд▓ рд▓рд╛рдЧреВ рд╢рдХрддрд╛рдд.
рд╡рд┐рдВрдбреЛрдЬрд╡рд░ рдЪрд╛рд▓реВ рдЬреЗрд╡реНрд╣рд╛ рд╕рдзреНрдпрд╛рдЪрд╛ рдереНрд░реЗрдб рджреБрд╕рд▒реНрдпрд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреА рддреЛрддрдпрд╛рдЧрд┐рд░реА рдХрд░рдд рдЕрд╕реЗрд▓ рддреЗрд╡реНрд╣рд╛ рдЖрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдорд╛рд▓рдХ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдкрд░рдд рдХрд░рддреЛ. рдкреВрд░реНрд╡реА рдпрд╛рдордзреНрдпреЗ рдПрдХ рддреНрд░реБрдЯреА рдЖрд▓реА рд╣реЛрддреА.
regexp
Regexp рдЖрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рд▓рд╛рдЧреВ рдХрд░рддреЛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ.рдЯреЗрдХреНрд╕реНрдЯрдЕтАНреЕрдбреЙрдкреНрдЯрд░.
рд░рдирдЯрд╛рдЗрдо
рдХрд╛рд░реНрдп рдЧрд░реЛрдЯ рдЖрддрд╛ рдирд╛рдкрд╕рдВрдд рдХреЗрд▓реЗ рдЖрд╣реЗ. рдирд╡реАрди рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд, рддреБрдореНрд╣реА "go" рдмрд╛рдпрдирд░реА рдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд┐рд╕реНрдЯрдо рдкрде рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕ рдкреНрд░рд╛рдзрд╛рдиреНрдп рджреНрдпрд╛рд╡реЗ рдЖрдгрд┐ GOROOT рдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА go env GOROOT рд╡рд╛рдкрд░рд╛.
рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕
рдкреЕрдХреЗрдЬ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдЗрдЯрд░реЗрдЯрд░реНрд╕рд╕рд╣ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдиреЗрдХ рдлрдВрдХреНрд╢рдиреНрд╕ рдЬреЛрдбрддреЗ:
- рдУрд│реА рд╕реНрдЯреНрд░рд┐рдВрдЧрдордзреАрд▓ рдирд╡реАрди рд░реЗрд╖рд╛рдВрдиреА рд╡рд┐рднрдХреНрдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рд░реЗрд╖рд╛рдВрд╡рд░ рдЗрдЯрд░реЗрдЯрд░ рдорд┐рд│рд╡рддреЗ.
- рд╕реНрдкреНрд▓рд┐рдЯрд╕реЗрдХ рд╡рд┐рднрд╛рдЬрдХрд╛рдиреЗ рд╡рд┐рднрдХреНрдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧрдЪреНрдпрд╛ рд╕рд░реНрд╡ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧрд╡рд░ рдЗрдЯрд░реЗрдЯрд░ рдорд┐рд│рд╡рддреЗ.
- рд╕реНрдкреНрд▓рд┐рдЯрдЖрдлреНрдЯрд░рд╕реЗрдХ рд╡рд┐рднрд╛рдЬрдХрд╛рдЪреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдиреЗрдирдВрддрд░ рд╡рд┐рднрд╛рдЬрд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧрдЪреНрдпрд╛ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧрд╡рд░ рдЗрдЯрд░реЗрдЯрд░ рдорд┐рд│рд╡рддреЗ.
- рдлреАрд▓реНрдбреНрд╕рд╕рд┐рдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рд╡реНрд╣рд╛рдИрдЯрд╕реНрдкреЗрд╕ рд╡рд░реНрдгрд╛рдВрдЪреНрдпрд╛ рдЕрдиреБрдХреНрд░рдорд╛рдВрднреЛрд╡рддреА рд╕реНрдЯреНрд░рд┐рдВрдЧрдЪреНрдпрд╛ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧрд╡рд░ рдЗрдЯрд░реЗрдЯрд░ рдкрд░рдд рдХрд░рддреЗ.рдпреБрдирд┐рдХреЛрдб.рдЗрд╕рд╕реНрдкреЗрд╕
- рдлреАрд▓реНрдбреНрд╕рдлрдВрдХрд╕реЗрдХ рдпреБрдирд┐рдХреЛрдб рдХреЛрдб рдкреЙрдЗрдВрдЯреНрд╕рдЪреНрдпрд╛ рдЕрдиреБрдХреНрд░рдорд╛рдВрднреЛрд╡рддреА рд╕реНрдЯреНрд░рд┐рдВрдЧрдЪреНрдпрд╛ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧрд╡рд░ рдЗрдЯрд░реЗрдЯрд░ рдорд┐рд│рд╡рддреЗ рдЬреЗ рдкреНрд░реЗрдбрд┐рдХреЗрдЯрд▓рд╛ рдкреВрд░реНрдг рдХрд░рддрд╛рдд.
рд╕рдордХреНрд░рдордг
рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕рд┐рдВрдХ.рдореЕрдк рдХрд╛рдордЧрд┐рд░реА рд╕реБрдзрд╛рд░рдгреНрдпрд╛рд╕рд╛рдареА, рд╡рд┐рд╢реЗрд╖рддрдГ рд╢рдмреНрджрдХреЛрд╢рд╛рддреАрд▓ рдмрджрд▓рд╛рдВрд╕рд╛рдареА, рдмрджрд▓ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓рд╛ рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдореЛрдареНрдпрд╛ рд╢рдмреНрджрдХреЛрд╢рд╛рдВрд╡рд░ рдбрд┐рд╕рдЬреЙрдЗрдВрдЯ рд╕реЗрдЯ рдЪреЗрдВрдЬ рдХреЙрдиреНрдЯреЗрдиреНрд╢рдирдЪреА рд╢рдХреНрдпрддрд╛ рдХрдореА рдЕрд╕рддреЗ рдЖрдгрд┐ рдХрдореА рдХреЙрдиреНрдЯреЗрдиреНрд╢рди рдбрд┐рдХреНрд╢рдирд░реА рд▓реЛрдб рд╕рд╛рдзреНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрддрд╛ рдмрд┐рд▓реНрдб-рдЕрдк рд╡реЗрд│реЗрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╕рддреЗ.
рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реА рд╕рдорд╕реНрдпрд╛ рдЖрд▓реНрдпрд╛ рддрд░, рдЬреБрдиреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╡рд░ рдкрд░рдд рдЬрд╛рдгреНрдпрд╛рд╕рд╛рдареА рдмрд┐рд▓реНрдб рджрд░рдореНрдпрд╛рди GOEXPERIMENT=nosynchashtriemap рд╕реЗрдЯ рдХрд░рд╛ рдЖрдгрд┐ рдХреГрдкрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдлреЙрд░реНрдо рднрд░рд╛.
рдЪрд╛рдЪрдгреА
рдирд╡реАрди рдкрджреНрдзрддреА рдЯреА. рд╕рдВрджрд░реНрдн ╨╕ B. рд╕рдВрджрд░реНрдн рдЪрд╛рдЪрдгреА рдкреВрд░реНрдг рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░ рдЖрдгрд┐ рдЪрд╛рдЪрдгреА рдХреНрд▓реАрдирдЕрдк рдлрдВрдХреНрд╢рдиреНрд╕ рдЕрдВрдорд▓рд╛рдд рдЖрдгрдгреНрдпрд╛рдкреВрд░реНрд╡реА рдЯрд╛рдХреВрди рджрд┐рд▓реЗрд▓рд╛ рд╕рдВрджрд░реНрдн рдкрд░рдд рдХрд░рд╛.
рдирд╡реАрди рдкрджреНрдзрддреА рдЯреА. рдЪрджреАрд░ ╨╕ рдмреА. рдЪрджреАрд░ рдЪрд╛рдЪрдгреА рдХрд┐рдВрд╡рд╛ рдмреЗрдВрдЪрдорд╛рд░реНрдХрдЪреНрдпрд╛ рдХрд╛рд▓рд╛рд╡рдзреАрд╕рд╛рдареА рдХрд╛рд░реНрдпрд░рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрджрд▓рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдК рд╢рдХрддреЗ.
рдордЬрдХреВрд░/рдЯреЗрдореНрдкрд▓реЗрдЯ
рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдЖрддрд╛ рд░реЗрдВрдЬ-рдУрд╡реНрд╣рд░-рдлрдВрдХ рдЖрдгрд┐ рд░реЗрдВрдЬ-рдУрд╡реНрд╣рд░-рдЗрдВрдЯрд▓рд╛ рд╕рдорд░реНрдерди рджреЗрддрд╛рдд.
рд╡реЗрд│
рд╡реЗрд│ рдЖрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рд▓рд╛рдЧреВ рдХрд░рддреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ.рдмрд╛рдпрдирд░реАрдЕтАНреЕрдкреЗрдВрдбрд░ ╨╕ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ.рдЯреЗрдХреНрд╕реНрдЯрдЕтАНреЕрдкреЗрдВрдбрд░.
рдкреЛрд░реНрдЯреНрд╕
linux
рдЬрд╕реЗ рд╣реЛрддреЗ рддрд╕реЗ рдШреЛрд╖рд┐рдд рдХреЗрд▓реЗ рдЧреЛ рез.реирей рд░рд┐рд▓реАрдЬ рдиреЛрдЯреНрд╕рдиреБрд╕рд╛рд░, рдЧреЛ рез.реирек рд▓рд╛ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдирд▓ рдЖрд╡реГрддреНрддреА рей.реи рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдирдВрддрд░рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ.
рдбрд╛рд░реНрд╡рд┐рди
рдЧреЛ рез.реирек рд╣реЗ рдореЕрдХрдУрдПрд╕ резрез рдмрд┐рдЧ рд╕реБрд░ рд╡рд░ рдЪрд╛рд▓рдгрд╛рд░реЗ рд╢реЗрд╡рдЯрдЪреЗ рд░рд┐рд▓реАрдЬ рдЖрд╣реЗ. рдЧреЛ рез.реирел рд▓рд╛ рдореЕрдХрдУрдПрд╕ резреи рдореЛрдВрдЯреЗрд░реА рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдирдВрддрд░рдЪреНрдпрд╛ рдЖрд╡реГрддреНрддреАрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕реЗрд▓.
рд╡реЗрдмрдЕрд╕реЙрдмрд▓
WebAssembly рд╣реЛрд╕реНрдЯрд╡рд░ рдлрдВрдХреНрд╢рдиреНрд╕ рдПрдХреНрд╕рдкреЛрд░реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА Go рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕рдордзреНрдпреЗ go:wasmexport рдХрдВрдкрд╛рдпрд▓рд░ рдбрд╛рдпрд░реЗрдХреНрдЯрд┐рд╡реНрд╣ рдЬреЛрдбрдгреНрдпрд╛рдд рдЖрд▓рд╛ рдЖрд╣реЗ.
WebAssembly рд╕рд┐рд╕реНрдЯрдо рдЗрдВрдЯрд░рдлреЗрд╕ рдкреНрд░рд┐рд╡реНрд╣реНрдпреВ рез (GOOS=wasip1 GOARCH=wasm) рдордзреНрдпреЗ, Go рез.реирек Go рдкреНрд░реЛрдЧреНрд░рд╛рдо рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕ рд╕рдорд░реНрдерди рджреЗрддреЗ рдЬрд╕реЗ рдХреА рдЕрдгреБрднрдЯреНрдЯреА/рдЧреНрд░рдВрдерд╛рд▓рдп рдмрд┐рд▓реНрдб рдлреНрд▓реЕрдЧ -buildmode=c-shared рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВрди.
go:wasmimport рдлрдВрдХреНрд╢рдиреНрд╕рд╕рд╛рдареА рдЖрддрд╛ рдЕрдзрд┐рдХ рдкреНрд░рдХрд╛рд░рд╛рдВрдирд╛ рд╡рд┐рддрд░реНрдХ рдХрд┐рдВрд╡рд╛ рдирд┐рдХрд╛рд▓ рдкреНрд░рдХрд╛рд░ рдореНрд╣рдгреВрди рдкрд░рд╡рд╛рдирдЧреА рдЖрд╣реЗ. рд╡рд┐рд╢реЗрд╖рддрдГ, рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░рд╛рдВрд╕рд╛рдареА bool, string, uintptr рдЖрдгрд┐ рдкреЙрдЗрдВрдЯрд░реНрд╕рдирд╛ рдкрд░рд╡рд╛рдирдЧреА рдЖрд╣реЗ (рддрдкрд╢реАрд▓ рдкрд╣рд╛ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг), 32-рдмрд┐рдЯ рдЖрдгрд┐ 64-рдмрд┐рдЯ рдкреВрд░реНрдгрд╛рдВрдХ рдЖрдгрд┐ рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдкреНрд░рдХрд╛рд░рд╛рдВрд╕рд╣, рдЖрдгрд┐ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд.рдкреЙрдЗрдВрдЯрд░, рдЬреЗ рдЖрдзреАрдЪ рдкрд░рд╡рд╛рдирдЧреА рдЖрд╣реЗрдд. go:wasmexport рдлрдВрдХреНрд╢рдиреНрд╕рд╕рд╛рдареА рдпрд╛ рдкреНрд░рдХрд╛рд░рд╛рдВрдирд╛ рд╡рд┐рддрд░реНрдХ рдХрд┐рдВрд╡рд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рдХрд╛рд░ рдореНрд╣рдгреВрди рджреЗрдЦреАрд▓ рдкрд░рд╡рд╛рдирдЧреА рдЖрд╣реЗ.
WebAssembly рд╕рд╛рдареА рд╕рдкреЛрд░реНрдЯ рдлрд╛рдЗрд▓реНрд╕ misc/wasm рд╡рд░реВрди lib/wasm рд╡рд░ рд╣рд▓рд╡рд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд.
рд╕реБрд░реБрд╡рд╛рддреАрдЪреНрдпрд╛ рдореЗрдорд░реА рдлреВрдЯрдкреНрд░рд┐рдВрдЯрдордзреНрдпреЗ рд▓рдХреНрд╖рдгреАрдп рдШрдЯ рдЭрд╛рд▓реА рдЖрд╣реЗ, рд╡рд┐рд╢реЗрд╖рддрдГ рд▓рд╣рд╛рди рд╡реЗрдмрдЕрд╕реЗрдореНрдмреНрд▓реА рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрд╕рд╛рдареА.
рд╡рд┐рдВрдбреЛрдЬ
рейреи-рдмрд┐рдЯ рд╡рд┐рдВрдбреЛрдЬ/рдЖрд░реНрдо рдкреЛрд░реНрдЯ (GOOS=windows GOARCH=рдЖрд░реНрдо) рддреБрдЯрд▓реЗрд▓рд╛ рдореНрд╣рдгреВрди рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХреЗрд▓рд╛ рдЖрд╣реЗ. рддрдкрд╢реАрд▓ рдпреЗрдереЗ рдЖрд╣реЗрдд #70705
рд╕реНрддреНрд░реЛрдд: linux.org.ru
