{"id":76573,"date":"2020-04-03T13:42:25","date_gmt":"2020-04-03T11:42:25","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/nativnaya-kompilyacziya-v-quarkus-pochemu-eto-vazhno"},"modified":"2020-04-03T13:42:25","modified_gmt":"2020-04-03T11:42:25","slug":"nativnaya-kompilyacziya-v-quarkus-pochemu-eto-vazhno","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/nativnaya-kompilyacziya-v-quarkus-pochemu-eto-vazhno","title":{"rendered":"Compilarea nativ\u0103 \u00een Quarkus \u2013 de ce este important\u0103","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Bun\u0103 ziua! Acesta este al doilea post din seria noastr\u0103 despre Quarkus \u2013 ast\u0103zi vom discuta despre compilarea nativ\u0103.<\/p>\n<p><img decoding=\"async\" alt=\"Compilarea nativ\u0103 \u00een Quarkus \u2013 de ce este important\u0103\" src=\"\/wp-content\/uploads\/2020\/04\/3690313f6718405b06f0a6b5360767e3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/blog\/2019\/03\/20\/quarkus-0-12-0-released\/\">Quarkus<\/a><\/noindex> \u2013 este un stack Java conceput pentru <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/kubernetes\/\">Kubernetes<\/a><\/noindex>. \u0218i de\u0219i mai sunt multe de f\u0103cut, am lucrat bine la o serie de aspecte, inclusiv optimizarea JVM \u0219i a diverselor framework-uri. Una dintre caracteristicile Quarkus care a suscitat un interes crescut din partea dezvoltatorilor este abordarea sa cuprinz\u0103toare \u0219i seamless de transformare a codului Java \u00een fi\u0219iere executabile pentru un sistem de operare specific (a\u0219a-numita \u201ecompilare nativ\u0103\u201d) \u00een mod similar cu C \u0219i C++, unde aceast\u0103 compilare are loc de obicei la sf\u00e2r\u0219itul ciclului de construc\u021bie, testare \u0219i implementare.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n\u0218i de\u0219i compilarea nativ\u0103, dup\u0103 cum vom ar\u0103ta mai jos, este important\u0103, trebuie men\u021bionat c\u0103 Quarkus func\u021bioneaz\u0103 foarte bine \u0219i pe o ma\u0219in\u0103 Java obi\u0219nuit\u0103 OpenJDK Hotspot, datorit\u0103 \u00eembun\u0103t\u0103\u021birilor de performan\u021b\u0103 pe care le-am implementat pe \u00eentreaga structur\u0103. De aceea, compilarea nativ\u0103 ar trebui privit\u0103 ca un bonus suplimentar pe care \u00eel po\u021bi folosi la nevoie. \u00cen realitate, \u00een ceea ce prive\u0219te imaginile native, Quarkus depinde semnificativ de OpenJDK. \u00cen plus, modul dev, bine primit de dezvoltatori, asigur\u0103 testarea aproape instantanee a modific\u0103rilor, datorit\u0103 capacit\u0103\u021bilor avansate de execu\u021bie dinamic\u0103 a codului implementate \u00een Hotspot. \u00cempreun\u0103 cu asta, la crearea imaginilor native, GraalVM utilizeaz\u0103 biblioteca de clase OpenJDK \u0219i capacit\u0103\u021bile HotSpot.<\/p>\n<p>Atunci, de ce avem nevoie de compilarea nativ\u0103, dac\u0103 totul este deja optimizat exceptional? La aceast\u0103 \u00eentrebare vom \u00eencerca s\u0103 r\u0103spundem mai jos.<\/p>\n<p>S\u0103 \u00eencepem cu evidentul: Red Hat are mult\u0103 experien\u021b\u0103 \u00een optimizarea JVM, stack-urilor \u0219i framework-urilor \u00een timpul dezvolt\u0103rii proiectului <noindex><a rel=\"nofollow\" href=\"http:\/\/www.jboss.org\/\">JBoss<\/a><\/noindex>, inclusiv:<\/p>\n<ul>\n<li>Primul server de aplica\u021bii pentru lucrul \u00een cloud pe platforma <noindex><a rel=\"nofollow\" href=\"https:\/\/www.redhat.com\/en\/blog\/openshift-is-the-first-paas-to-support-java-ee-6-full-profile-in-the-cloud\">Red Hat OpenShift<\/a><\/noindex>.<\/li>\n<li>Primul server de aplica\u021bii pentru lucrul pe computere <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/index.php\/videos\/youtube\/9c-g7UxT0nk\/\">Plug PC<\/a><\/noindex>.<\/li>\n<li>Primul server de aplica\u021bii pentru lucrul pe <noindex><a rel=\"nofollow\" href=\"http:\/\/blog.arungupta.me\/wildfly-on-raspberry-pi-techtip-24\/\">Raspberry Pi<\/a><\/noindex>.<\/li>\n<li>O \u00eentreag\u0103 serie de proiecte care func\u021bioneaz\u0103 pe dispozitive <noindex><a rel=\"nofollow\" href=\"http:\/\/www.jboss.org\/iot\/android\/\">Android<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nNe ocup\u0103m de mul\u021bi ani de problemele de lansare a aplica\u021biilor Java \u00een cloud \u0219i pe dispozitive cu resurse limitate (citi\u021bi, IoT) \u0219i am \u00eenv\u0103\u021bat s\u0103 extragem maximum din JVM \u00een ceea ce prive\u0219te performan\u021ba \u0219i optimizarea memoriei. La fel ca al\u021bii, lucr\u0103m deja de mult timp cu compilarea nativ\u0103 a aplica\u021biilor Java prin <noindex><a rel=\"nofollow\" href=\"https:\/\/gcc.gnu.org\/wiki\/GCJ\">GCJ<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/readytalk.github.io\/avian\/\">Avian<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.excelsiorjet.com\/\">Excelsior JET<\/a><\/noindex> \u0219i chiar <noindex><a rel=\"nofollow\" href=\"https:\/\/source.android.com\/devices\/tech\/dalvik\">Dalvik<\/a><\/noindex> \u0219i suntem perfect con\u0219tien\u021bi de avantajele \u0219i dezavantajele unei astfel de abord\u0103ri (de exemplu, dilema alegerii \u00eentre versatilitatea \"build once \u2013 run-anywhere\" \u0219i faptul c\u0103 aplica\u021biile compilate au o dimensiune mai mic\u0103 \u0219i se lanseaz\u0103 mai repede).<\/p>\n<p>De ce este at\u00e2t de important s\u0103 lu\u0103m \u00een considerare aceste avantaje \u0219i dezavantaje? Pentru c\u0103, \u00een anumite situa\u021bii, propor\u021bia lor devine decisiv\u0103:<\/p>\n<ul>\n<li>De exemplu, \u00een medii serverless\/gestionate de evenimente, unde <noindex><a rel=\"nofollow\" href=\"https:\/\/mikhail.io\/2018\/08\/serverless-cold-start-war\/\">serviciile trebuie s\u0103 se lanseze<\/a><\/noindex> \u00een mod (rigid sau flexibil) \u00een timp real, pentru a reac\u021biona la evenimente. Spre deosebire de serviciile persistente cu durat\u0103 lung\u0103 de via\u021b\u0103, aici durata de lansare la rece cre\u0219te critic timpul de r\u0103spuns la cerere. Lansarea JVM necesit\u0103 \u00eenc\u0103 un timp semnificativ, \u0219i, de\u0219i \u00een unele cazuri poate fi redus\u0103 prin metode hardware, diferen\u021ba dintre o secund\u0103 \u0219i 5 milisecunde poate fi o problem\u0103 de via\u021b\u0103 \u0219i de moarte. Da, aici se poate experimenta cu crearea de rezerve calde de ma\u0219ini Java (a\u0219a cum am f\u0103cut, de exemplu, \u00een cazul <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/projectodd\/kwsk\">port\u0103rii OpenWhisk pe Knative<\/a><\/noindex>), dar acest lucru \u00een sine nu garanteaz\u0103 un num\u0103r suficient de JVM-uri pentru a gestiona cererile pe m\u0103sur\u0103 ce se escaladeaz\u0103 sarcina. Nici din punct de vedere economic, cu siguran\u021b\u0103, aceasta nu este cea mai bun\u0103 op\u021biune.<\/li>\n<li>\u00cen plus, exist\u0103 un alt aspect care apare frecvent, \u0219i anume multitenan\u021ba. De\u0219i JVM-urile au avansat semnificativ \u00een capacit\u0103\u021bile lor, ele nu sunt \u00eenc\u0103 capabile s\u0103 fac\u0103 ceea ce am \u00eenv\u0103\u021bat s\u0103 expect\u0103m \u00een Linux \u2013 s\u0103 izoleze procesele. Prin urmare, o defec\u021biune a unui fir poate duce la pr\u0103bu\u0219irea \u00eentregii ma\u0219ini Java. Mul\u021bi \u00eencearc\u0103 s\u0103 ocoleasc\u0103 aceast\u0103 deficien\u021b\u0103 aloc\u00e2nd c\u00e2te o JVM separat\u0103 pentru aplica\u021biile fiec\u0103rui utilizator, pentru a minimiza consecin\u021bele defec\u021biunii. Aceasta este o abordare logic\u0103, dar se potrive\u0219te prost cu scalarea.<\/li>\n<li>\u00cen plus, pentru aplica\u021biile orientate spre cloud, un parametru important este densitatea serviciilor pe gazd\u0103. Trecerea la metodologia <noindex><a rel=\"nofollow\" href=\"https:\/\/12factor.net\/\">12 factori ai aplica\u021biei<\/a><\/noindex>, microserviciile \u0219i Kubernetes cresc num\u0103rul de ma\u0219ini Java pentru o aplica\u021bie. Cu alte cuvinte, pe de o parte, toate acestea ofer\u0103 elasticitate \u0219i fiabilitate, dar pe de alt\u0103 parte, cre\u0219te \u0219i consumul de memorie de baz\u0103 raportat la serviciu, iar o parte din aceste cheltuieli nu sunt \u00eentotdeauna strict necesare. Fi\u0219ierele executabile compilate static c\u00e2\u0219tig\u0103 aici prin diverse tehnici de optimizare, cum ar fi eliminarea codului mort la nivel de baz\u0103, c\u00e2nd \u00een imaginea final\u0103 sunt incluse doar acele p\u0103r\u021bi ale framework-urilor (inclusiv JDK-ul \u00eensu\u0219i) pe care serviciul le folose\u0219te efectiv. Prin urmare, compilarea nativ\u0103 Quarkus ajut\u0103 la plasarea mai dens\u0103 a instan\u021belor serviciilor pe gazd\u0103 f\u0103r\u0103 a compromite securitatea.<\/li>\n<\/ul>\n<p>\nPractic, argumentele prezentate mai sus sunt deja suficiente pentru a \u00een\u021belege justificarea compil\u0103rii native din perspectiva participan\u021bilor proiectului Quarkus. Cu toate acestea, exist\u0103 \u0219i un alt motiv, non-tehnic, dar la fel de important: \u00een ultimii ani, mul\u021bi programatori \u0219i companii de dezvoltare au abandonat Java \u00een favoarea unor noi limbaje de programare, consider\u00e2nd c\u0103 Java, \u00eempreun\u0103 cu JVM-urile, stivele \u0219i framework-urile sale, a devenit prea \u201efoame\u201d \u00een ceea ce prive\u0219te memoria, prea lent\u0103 etc.<\/p>\n<p>Cu toate acestea, obi\u0219nuin\u021ba de a folosi acela\u0219i instrument pentru a rezolva orice problem\u0103 \u2013 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.reddit.com\/r\/java\/comments\/8xv3ha\/does_anybody_use_spring_boot_with_aws_lambda_do\/\">nu este \u00eentotdeauna corect<\/a><\/noindex>. Uneori, este mai bine s\u0103 faci un pas \u00eenapoi \u0219i s\u0103 cau\u021bi altceva. \u0218i dac\u0103 Quarkus \u00eei determin\u0103 pe oameni s\u0103 fac\u0103 o pauz\u0103 \u0219i s\u0103 reflecteze, atunci acest lucru este benefic pentru \u00eentreaga ecologie Java. Quarkus \u00eenf\u0103\u021bi\u0219eaz\u0103 o viziune inovatoare despre cum s\u0103 creezi aplica\u021bii mai eficiente, f\u0103c\u00e2nd Java mai relevant\u0103 pentru noile arhitecturi de aplica\u021bii, precum serverless. \u00cen plus, datorit\u0103 extensibilit\u0103\u021bii sale, Quarkus, a\u0219a cum sper\u0103m, va avea o \u00eentreag\u0103 ecologie de extensii Java, cresc\u00e2nd semnificativ num\u0103rul de framework-uri care vor sus\u021bine nativ compilarea \u00een cadrul aplica\u021biilor.<br \/>\n<br \/>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/redhatrussia\/blog\/495212\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u0421 \u0432\u0430\u043c\u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u0441\u0442 \u0438\u0437 \u043d\u0430\u0448\u0435\u0439 \u0441\u0435\u0440\u0438\u0438 \u043f\u043e Quarkus \u2013 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438. Quarkus \u2013 \u044d\u0442\u043e Java-\u0441\u0442\u0435\u043a, \u0437\u0430\u0442\u043e\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0434 Kubernetes. \u0418 \u0445\u043e\u0442\u044f \u0437\u0434\u0435\u0441\u044c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u043d\u043e\u0433\u043e\u0435 \u0435\u0449\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u043c\u044b \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u0440\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u043c\u0430\u0441\u0441\u0443 \u0430\u0441\u043f\u0435\u043a\u0442\u043e\u0432, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e JVM \u0438 \u0446\u0435\u043b\u043e\u0433\u043e \u0440\u044f\u0434\u0430 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432. \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 Quarkus, \u0432\u044b\u0437\u0432\u0430\u0432\u0448\u0435\u0439 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0441\u0442\u0430\u043b [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":76574,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-76573","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442!\" \/>\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\/administrirovanie\/nativnaya-kompilyacziya-v-quarkus-pochemu-eto-vazhno\" \/>\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\u041d\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0432 Quarkus \u2013 \u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442!\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/nativnaya-kompilyacziya-v-quarkus-pochemu-eto-vazhno\" \/>\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=\"2020-04-03T11:42:25+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-03T11:42:25+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\udd47Compilarea nativ\u0103 \u00een Quarkus \u2013 de ce este important | ProHoster","description":"Salut tuturor!","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/nativnaya-kompilyacziya-v-quarkus-pochemu-eto-vazhno","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\u041d\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0432 Quarkus \u2013 \u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442!","og:url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/nativnaya-kompilyacziya-v-quarkus-pochemu-eto-vazhno","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":"2020-04-03T11:42:25+00:00","article:modified_time":"2020-04-03T11:42:25+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"76573","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":null,"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-02-28 17:34:49","updated":"2022-09-28 02:06:54","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\/76573","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=76573"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/76573\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/76574"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=76573"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=76573"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=76573"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}