{"id":122675,"date":"2025-03-20T23:00:13","date_gmt":"2025-03-20T21:00:13","guid":{"rendered":"https:\/\/prohoster.info\/?p=122675"},"modified":"2025-03-20T23:00:13","modified_gmt":"2025-03-20T21:00:13","slug":"brauzer-chrome-perevedyon-na-shriftovoj-dvizhok-skrifa-napisannyj-na-rust","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/news\/brauzer-chrome-perevedyon-na-shriftovoj-dvizhok-skrifa-napisannyj-na-rust","title":{"rendered":"Prohl\u00ed\u017ee\u010d Chrome byl p\u0159enesen na font engine Skrifa, napsan\u00fd v Rustu.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Spole\u010dnost Google p\u0159evedla prohl\u00ed\u017ee\u010d Chrome na knihovnu Skrifa, napsanou v jazyce Rust, kter\u00e1 poskytuje mo\u017enosti pro zpracov\u00e1n\u00ed p\u00edsem ve form\u00e1tu OpenType. Skrifa implementuje podmno\u017einu schopnost\u00ed enginu p\u00edsem FreeType, pot\u0159ebnou pro 2D knihovnu Skia, pou\u017e\u00edvanou v Chrome a Chromium. Aby se knihovna Skia zbavila z\u00e1vislosti na enginu FreeType, byl vytvo\u0159en nov\u00fd backend pro p\u00edsma, zalo\u017een\u00fd na Skif\u011b.     <\/p>\n<p>V Chrome 128 byl napsan\u00fd v Rustu backend zahrnut v experiment\u00e1ln\u00edm re\u017eimu pro m\u00e1lo pou\u017e\u00edvan\u00e9 form\u00e1ty p\u00edsem, jako jsou CFF2 a barevn\u00e1 p\u00edsma. Od vyd\u00e1n\u00ed Chrome 133 je nov\u00fd backend zapojen pro v\u0161echna webov\u00e1 p\u00edsma ve verz\u00edch pro platformy Linux, Android a ChromeOS. Na platform\u00e1ch Windows a macOS se nov\u00fd engine zat\u00edm pou\u017e\u00edv\u00e1 jako z\u00e1lo\u017en\u00ed a aplikov\u00e1n, pokud syst\u00e9m nepodporuje form\u00e1t p\u00edsma, kter\u00fd se prohl\u00ed\u017ee\u010d sna\u017e\u00ed zobrazit.       <\/p>\n<p>K\u00f3d Skrifa vyvinuli in\u017een\u00fd\u0159i Google v r\u00e1mci n\u00e1stroje Fontations a je otev\u0159en pod licencemi MIT a Apache 2.0. Pro ov\u011b\u0159en\u00ed funk\u010dnosti Skrifa bylo p\u0159ipraveno p\u0159ibli\u017en\u011b 700 unit test\u016f. Knihovna podporuje dek\u00f3dov\u00e1n\u00ed glif\u016f ve form\u00e1tech glyf, CFF, CFF2, COLRv0, COLRv1, EBDT, CBDT a sbix, variabiln\u00ed p\u00edsma ve form\u00e1tech glyf, CFF2 a COLRv1, a hinting p\u00edsem ve form\u00e1tech glyf, CFF a CFF2.      <\/p>\n<p>Krom\u011b knihovny Skrifa, kter\u00e1 poskytuje API pro p\u0159\u00edstup k metadat\u016fm p\u00edsem a na\u010d\u00edt\u00e1n\u00ed obrys\u016f glif\u016f, n\u00e1stroj Fontations zahrnuje n\u00edzko\u00farov\u0148ov\u00e9 knihovny pro \u010dten\u00ed, anal\u00fdzu, zm\u011bnu a vytv\u00e1\u0159en\u00ed dat p\u00edsem ve form\u00e1tu OpenType. Samotn\u00e9 Fontations je sou\u010d\u00e1st\u00ed projektu Oxidize, vytvo\u0159en\u00e9ho pro p\u0159evod n\u00e1stroj\u016f a knihoven pro pr\u00e1ci s textem a p\u00edsmem z komponent\u016f v jazyc\u00edch Python (fonttools, fontmake, nanoemoji) a C++ (HarfBuzz, FreeType) na nov\u00e9 implementace napsan\u00e9 v Rustu.        <\/p>\n<p>V\u00fdvoj komponent\u016f v Rustu za\u010dal kv\u016fli nedostate\u010dn\u00e9 \u00fa\u010dinnosti odhalov\u00e1n\u00ed chyb pomoc\u00ed fuzzing testov\u00e1n\u00ed, proto\u017ee form\u00e1ty p\u00edsem jsou p\u0159\u00edli\u0161 slo\u017eit\u00e9 na pokryt\u00ed v\u0161ech mo\u017en\u00fdch kombinac\u00ed. Nap\u0159\u00edklad minul\u00fd t\u00fdden byla ve FreeType odhalena kritick\u00e1 zranitelnost, kter\u00e1 umo\u017e\u0148uje vykon\u00e1vat k\u00f3d p\u0159i zpracov\u00e1n\u00ed speci\u00e1ln\u011b vytvo\u0159en\u00fdch p\u00edsem z p\u0159ete\u010den\u00ed z\u00e1sobn\u00edku. Krom\u011b enginu FreeType mohou probl\u00e9my s bezpe\u010dnost\u00ed zp\u016fsobovat i z\u00e1vislosti, kter\u00e9 se v n\u011bm pou\u017e\u00edvaj\u00ed, jako jsou bzip2, libpng a zlib.      <\/p>\n<p>Pou\u017eit\u00ed Rustu v\u00fdrazn\u011b sn\u00ed\u017eilo pravd\u011bpodobnost probl\u00e9m\u016f s pam\u011bt\u00ed, zlep\u0161ilo kvalitu k\u00f3du, sn\u00ed\u017eilo \u010das pot\u0159ebn\u00fd k oprav\u011b bezpe\u010dnostn\u00edch probl\u00e9m\u016f a urychlilo zav\u00e1d\u011bn\u00ed vylep\u0161en\u00ed t\u00fdkaj\u00edc\u00edch se font\u016f v prohl\u00ed\u017ee\u010di Chrome. Podle statistik Google a Microsoftu je p\u0159ibli\u017en\u011b 70% nebezpe\u010dn\u00fdch zranitelnost\u00ed zp\u016fsobeno probl\u00e9my s pam\u011bt\u00ed, kter\u00fdm se lze vyhnout pou\u017eit\u00edm jazyka Rust bez unsafe blok\u016f.     <\/p>\n<p>Nap\u0159\u00edklad pou\u017eit\u00ed Rustu by zabr\u00e1nilo d\u0159\u00edve zji\u0161t\u011bn\u00fdm probl\u00e9m\u016fm v k\u00f3du FreeType, kter\u00e9 se t\u00fdkaly p\u0159\u00edstupu k uvoln\u011bn\u00fdm oblastem pam\u011bti, p\u0159ete\u010den\u00ed bufferu, p\u0159\u00edstupu k poli bez kontroly index\u016f, celo\u010d\u00edseln\u00fdm p\u0159ete\u010den\u00edm, nespr\u00e1vn\u00e9mu pou\u017eit\u00ed nepro \u010di\u0161t\u011bn\u00fdch oblast\u00ed pam\u011bti a chyb\u00e1m p\u0159i p\u0159evodu typ\u016f.<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=62922\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043f\u0435\u0440\u0435\u0432\u0435\u043b\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 Chrome \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 Skrifa, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u0443\u044e \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0443\u044e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0448\u0440\u0438\u0444\u0442\u043e\u0432 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 OpenType. Skrifa \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0448\u0440\u0438\u0444\u0442\u043e\u0432\u043e\u0433\u043e \u0434\u0432\u0438\u0436\u043a\u0430 FreeType, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u0434\u043b\u044f 2D-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Skia, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0439 \u0432 Chrome \u0438 Chromium. \u0414\u043b\u044f \u0438\u0437\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Skia \u043e\u0442 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043a \u0434\u0432\u0438\u0436\u043a\u0443 FreeType \u0441\u043e\u0437\u0434\u0430\u043d \u043d\u043e\u0432\u044b\u0439 \u0448\u0440\u0438\u0444\u0442\u043e\u0432\u043e\u0439 \u0431\u044d\u043a\u0435\u043d\u0434, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 Skrifa. \u0412 Chrome [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-122675","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043f\u0435\u0440\u0435\u0432\u0435\u043b\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 Chrome \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 Skrifa, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u0443\u044e \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0443\u044e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0448\u0440\u0438\u0444\u0442\u043e\u0432 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 OpenType.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/cs\/blog\/news\/brauzer-chrome-perevedyon-na-shriftovoj-dvizhok-skrifa-napisannyj-na-rust\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0411\u0440\u0430\u0443\u0437\u0435\u0440 Chrome \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0451\u043d \u043d\u0430 \u0448\u0440\u0438\u0444\u0442\u043e\u0432\u043e\u0439 \u0434\u0432\u0438\u0436\u043e\u043a Skrifa, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 Rust | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043f\u0435\u0440\u0435\u0432\u0435\u043b\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 Chrome \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 Skrifa, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u0443\u044e \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0443\u044e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0448\u0440\u0438\u0444\u0442\u043e\u0432 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 OpenType.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/news\/brauzer-chrome-perevedyon-na-shriftovoj-dvizhok-skrifa-napisannyj-na-rust\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2025-03-20T21:00:13+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2025-03-20T21:00:13+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Prohl\u00ed\u017ee\u010d Chrome byl p\u0159eveden na fontov\u00fd engine Skrifa, napsan\u00fd v Rustu | ProHoster","description":"Spole\u010dnost Google p\u0159ev\u00e1d\u00ed prohl\u00ed\u017ee\u010d Chrome na knihovnu Skrifa, napsanou v jazyce Rust, kter\u00e1 poskytuje mo\u017enosti pro zpracov\u00e1n\u00ed font\u016f ve form\u00e1tu OpenType.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/news\/brauzer-chrome-perevedyon-na-shriftovoj-dvizhok-skrifa-napisannyj-na-rust","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0411\u0440\u0430\u0443\u0437\u0435\u0440 Chrome \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0451\u043d \u043d\u0430 \u0448\u0440\u0438\u0444\u0442\u043e\u0432\u043e\u0439 \u0434\u0432\u0438\u0436\u043e\u043a Skrifa, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 Rust | ProHoster","og:description":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043f\u0435\u0440\u0435\u0432\u0435\u043b\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 Chrome \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 Skrifa, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u0443\u044e \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0443\u044e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0448\u0440\u0438\u0444\u0442\u043e\u0432 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 OpenType.","og:url":"https:\/\/prohoster.info\/cs\/blog\/news\/brauzer-chrome-perevedyon-na-shriftovoj-dvizhok-skrifa-napisannyj-na-rust","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2025-03-20T21:00:13+00:00","article:modified_time":"2025-03-20T21:00:13+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"122675","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 11:24:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 11:24:20","updated":"2026-01-23 11:24:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/122675","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=122675"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/122675\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=122675"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=122675"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=122675"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}