{"id":102509,"date":"2021-12-07T15:37:11","date_gmt":"2021-12-07T13:37:11","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/tretya-redakcziya-patchej-dlya-yadra-linux-s-podderzhkoj-yazyka-rust"},"modified":"2021-12-07T15:37:11","modified_gmt":"2021-12-07T13:37:11","slug":"tretya-redakcziya-patchej-dlya-yadra-linux-s-podderzhkoj-yazyka-rust","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/news\/tretya-redakcziya-patchej-dlya-yadra-linux-s-podderzhkoj-yazyka-rust","title":{"rendered":"A treia edi\u021bie a patch-urilor pentru kernelul Linux cu suport pentru limbajul Rust.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Miguel Ojeda, autorul proiectului Rust-for-Linux, a propus pentru examinare de c\u0103tre dezvoltatorii nucleului Linux o a treia variant\u0103 de componente pentru dezvoltarea driverelor de dispozitive \u00een limbajul Rust. Suportul pentru Rust este considerat experimental, dar deja a fost convenit pentru a fi inclus \u00een ramura linux-next. Dezvoltarea este finan\u021bat\u0103 de compania Google \u0219i de organiza\u021bia ISRG (Internet Security Research Group), care este fondatoarea proiectului Let&#8217;s Encrypt \u0219i contribuie la promovarea HTTPS \u0219i la dezvoltarea tehnologiilor pentru \u00eembun\u0103t\u0103\u021birea securit\u0103\u021bii pe internet.            <\/p>\n<p>Reamintim c\u0103 schimb\u0103rile propuse permit utilizarea Rust ca a doua limb\u0103 pentru dezvoltarea driverelor \u0219i modulelor nucleului. Suportul pentru Rust este prezentat ca o op\u021biune, care nu este activat\u0103 \u00een mod implicit \u0219i nu duce la includerea Rust \u00eentre dependen\u021bele obligatorii pentru compilarea nucleului. Utilizarea Rust pentru dezvoltarea driverelor va permite, cu eforturi minime, crearea de drivere sigure \u0219i de calitate superioar\u0103, lipsite de probleme precum accesarea memoriei dup\u0103 eliberare, dereferen\u021bierea pointerilor nuli \u0219i dep\u0103\u0219irea limitelor buffer-ului.    <\/p>\n<p>Func\u021bionarea sigur\u0103 a memoriei este asigurat\u0103 \u00een Rust \u00een timpul compil\u0103rii prin verificarea referin\u021belor, urm\u0103rirea de\u021binerii obiectelor \u0219i gestionarea duratei de via\u021b\u0103 a obiectelor (zona de vizibilitate), precum \u0219i prin evaluarea corectitudinii accesului la memorie \u00een timpul execu\u021biei codului. Rust ofer\u0103, de asemenea, instrumente pentru protec\u021bia \u00eempotriva dep\u0103\u0219irilor de numere \u00eentregi, necesit\u0103 ini\u021bializarea obligatorie a valorilor variabilelor \u00eenainte de utilizare, gestioneaz\u0103 mai bine erorile \u00een biblioteca standard, aplic\u0103 conceptul de referin\u021be \u0219i variabile imutabile (immutable) \u00een mod implicit \u0219i ofer\u0103 o tipizare static\u0103 puternic\u0103 pentru a minimiza erorile logice.    <\/p>\n<p>\u00cen noua variant\u0103 a patch-urilor au fost continuate remedierea observa\u021biilor exprimate \u00een procesul de discu\u021bie a primelor \u0219i celor de-a doua versiuni ale patch-urilor. Cele mai notabile modific\u0103ri sunt:  <\/p>\n<ul>\n<li class=\"l\"> A fost realizat trecerea la utilizarea ca compilator de referin\u021b\u0103 a versiunii stabile Rust 1.57 \u0219i a fost asigurat\u0103 leg\u0103tura cu edi\u021bia stabilizat\u0103 a limbajului Rust 2021. Anterior, patch-urile erau legate de ramura beta Rust \u0219i foloseau anumite func\u021bionalit\u0103\u021bi ale limbajului care intrau \u00een categoria instabil\u0103. Trecerea la specifica\u021bia Rust 2021 a permis ini\u021bierea lucr\u0103rilor pentru a abandona utilizarea \u00een patch-uri a unor func\u021bionalit\u0103\u021bi instabile, cum ar fi const_fn_transmute, const_panic, const_unreachable_unchecked \u0219i core_panic \u0219i try_reserve.\n<li class=\"l\"> S-a continuat dezvoltarea variantei bibliotecii Rust alloc incluse \u00een patch-uri, modificat\u0103 pentru a elimina func\u021biile de alocare a memoriei de posibile genera\u021bii de stare &#171;panic&#187; \u00een caz de erori, cum ar fi lipsa memoriei. \u00cen noua versiune au fost implementate op\u021biunile &#171;no_rc&#187; \u0219i &#171;no_sync&#187; pentru a dezactiva func\u021bionalit\u0103\u021bile neutilizate \u00een codul Rust pentru nucleu, f\u0103c\u00e2nd biblioteca mai modular\u0103. Se continu\u0103 colaborarea cu principalii dezvoltatori ai alloc, av\u00e2nd ca obiectiv transferarea modific\u0103rilor necesare pentru nucleu \u00een compunerea principal\u0103 a bibliotecii. Op\u021biunea &#171;no_fp_fmt_parse&#187; a fost transferat\u0103 \u00een biblioteca de baz\u0103 Rust (core), fiind necesar\u0103 pentru func\u021bionarea bibliotecii la nivel de nucleu.\n<li class=\"l\"> A fost efectuat\u0103 o cur\u0103\u021bare a codului pentru a elimina posibilele avertiz\u0103ri ale compilatorului la compilarea kernel-ului \u00een modul CONFIG_WERROR. La compilarea codului \u00een limbajul Rust au fost incluse moduri diagnostice suplimentare ale compilatorului \u0219i avertiz\u0103ri ale lintrului Clippy.\n<li class=\"l\"> Au fost propuse abstrac\u021bii pentru utilizarea \u00een codul \u00een limbajul Rust a bloc\u0103rilor seqlock (secuen\u021b\u0103 de blocare), apelurilor callback pentru gestionarea aliment\u0103rii, memorie I\/O (readX\/writeX), gestionarea \u00eentreruperilor \u0219i fluxurilor, GPIO, acces la dispozitive, drivere \u0219i acreditive.\n<li class=\"l\"> S-au extins uneltele pentru dezvoltarea driverelor prin utilizarea mutexurilor mobile, iteratorilor bi\u021bi, ambalajelor simplificate pentru pointere, diagnosticului \u00eembun\u0103t\u0103\u021bit al erorilor \u0219i infrastructurii independente de magistrala de date.\n<li class=\"l\"> A fost \u00eembun\u0103t\u0103\u021bit\u0103 lucrul cu referin\u021bele prin intermediul unui tip simplificat Ref, bazat pe backendul refcount_t, care folose\u0219te API-ul corespunz\u0103tor al nucleului pentru num\u0103rarea referin\u021belor. Suportul pentru tipurile Arc \u0219i Rc, oferite \u00een biblioteca standard alloc, a fost eliminat \u0219i nu este disponibil \u00een codul executat la nivel de nucleu (op\u021biuni au fost preg\u0103tite pentru bibliotec\u0103, care dezactiveaz\u0103 aceste tipuri).\n<li class=\"l\"> \u00cen pachetul de actualiz\u0103ri a fost ad\u0103ugat un driver PL061 GPIO, rescris \u00een Rust. Caracteristica acestui driver este aceea c\u0103 implementarea sa repet\u0103 practic linie cu linie driverul GPIO existent \u00een limbajul C. Pentru dezvoltatorii care doresc s\u0103 se familiarizeze cu crearea driverelor \u00een Rust, a fost preg\u0103tit\u0103 o compara\u021bie linie cu linie, permi\u021b\u00e2ndu-le s\u0103 \u00een\u021beleag\u0103 \u00een ce structuri \u00een Rust a fost transformat codul \u00een C.\n<li class=\"l\"> \u00cen baza principal\u0103 de cod Rust a fost acceptat rustc_codegen_gcc, backend-ul rustc pentru GCC, care implementeaz\u0103 posibilitatea compil\u0103rii \u00een avans (AOT) utiliz\u00e2nd biblioteca libgccjit. Odat\u0103 cu dezvoltarea corespunz\u0103toare a backend-ului, va permite compilarea codului Rust implicat \u00een nucleu prin intermediul GCC.\n<li class=\"l\"> Pe l\u00e2ng\u0103 companiile ARM, Google \u0219i Microsoft, compania Red Hat a exprimat interes \u00een utilizarea limbajului Rust \u00een nucleul Linux. S\u0103 ne reamintim c\u0103 Google ofer\u0103 direct suport pentru proiectul Rust for Linux, dezvolt\u00e2nd o nou\u0103 implementare a mecanismului de interac\u021biune \u00eentre procese Binder \u00een Rust \u0219i consider\u00e2nd posibilitatea reproiect\u0103rii diferitelor drivere \u00een Rust. Compania Microsoft a \u00eenceput implementarea driverelor pentru Hyper-V \u00een Rust. Compania ARM lucreaz\u0103 la \u00eembun\u0103t\u0103\u021birea suportului Rust pentru sistemele bazate pe procesoare ARM. Compania IBM a implementat suport pentru Rust \u00een nucleu pentru sistemele PowerPC.      <\/ul>\n<p>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=56295\">opennet.ro<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u0438\u0433\u0435\u043b\u044c \u041e\u0445\u0435\u0434\u0430 (Miguel Ojeda), \u0430\u0432\u0442\u043e\u0440 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Rust-for-Linux, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u0434\u043b\u044f \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u044f\u0434\u0440\u0430 Linux \u0442\u0440\u0435\u0442\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Rust \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f, \u043d\u043e \u0443\u0436\u0435 \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u0430 \u0434\u043b\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0432 \u0432\u0435\u0442\u043a\u0443 linux-next. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0444\u0438\u043d\u0430\u043d\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0435\u0439 Google \u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0435\u0439 ISRG (Internet Security Research Group), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u0447\u0440\u0435\u0434\u0438\u0442\u0435\u043b\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Let&#8217;s Encrypt \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0441\u0442\u0432\u0443\u0435\u0442 [&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-102509","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u0438\u0433\u0435\u043b\u044c \u041e\u0445\u0435\u0434\u0430 (Miguel Ojeda), \u0430\u0432\u0442\u043e\u0440 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Rust-for-Linux, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u0434\u043b\u044f \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u044f\u0434\u0440\u0430 Linux \u0442\u0440\u0435\u0442\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust.\" \/>\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\/ro\/blog\/news\/tretya-redakcziya-patchej-dlya-yadra-linux-s-podderzhkoj-yazyka-rust\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\u0422\u0440\u0435\u0442\u044c\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u043f\u0430\u0442\u0447\u0435\u0439 \u0434\u043b\u044f \u044f\u0434\u0440\u0430 Linux \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u044f\u0437\u044b\u043a\u0430 Rust | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u0438\u0433\u0435\u043b\u044c \u041e\u0445\u0435\u0434\u0430 (Miguel Ojeda), \u0430\u0432\u0442\u043e\u0440 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Rust-for-Linux, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u0434\u043b\u044f \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u044f\u0434\u0440\u0430 Linux \u0442\u0440\u0435\u0442\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/news\/tretya-redakcziya-patchej-dlya-yadra-linux-s-podderzhkoj-yazyka-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=\"2021-12-07T13:37:11+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-12-07T13:37:11+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\udd47A treia edi\u021bie a patch-urilor pentru kernel-ul Linux cu suport pentru limbajul Rust | ProHoster","description":"Miguel Ojeda, autorul proiectului Rust-for-Linux, a propus pentru examinare dezvoltatorilor nucleului Linux o a treia variant\u0103 de componente pentru dezvoltarea driverelor de dispozitive \u00een limbajul Rust.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/news\/tretya-redakcziya-patchej-dlya-yadra-linux-s-podderzhkoj-yazyka-rust","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\u0422\u0440\u0435\u0442\u044c\u044f \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f \u043f\u0430\u0442\u0447\u0435\u0439 \u0434\u043b\u044f \u044f\u0434\u0440\u0430 Linux \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u044f\u0437\u044b\u043a\u0430 Rust | ProHoster","og:description":"\u041c\u0438\u0433\u0435\u043b\u044c \u041e\u0445\u0435\u0434\u0430 (Miguel Ojeda), \u0430\u0432\u0442\u043e\u0440 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Rust-for-Linux, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u0434\u043b\u044f \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u044f\u0434\u0440\u0430 Linux \u0442\u0440\u0435\u0442\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust.","og:url":"https:\/\/prohoster.info\/ro\/blog\/news\/tretya-redakcziya-patchej-dlya-yadra-linux-s-podderzhkoj-yazyka-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":"2021-12-07T13:37:11+00:00","article:modified_time":"2021-12-07T13:37:11+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"102509","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-12-07 13:37:18","updated":"2022-09-27 15:07:34","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/102509","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=102509"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/102509\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=102509"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=102509"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=102509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}