{"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\/fr\/blog\/administrirovanie\/nativnaya-kompilyacziya-v-quarkus-pochemu-eto-vazhno","title":{"rendered":"Compilation native dans Quarkus \u2013 pourquoi est-ce important","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Bonjour \u00e0 tous ! Voici le deuxi\u00e8me article de notre s\u00e9rie sur Quarkus \u2013 aujourd'hui, nous allons parler de la compilation native.<\/p>\n<p><img decoding=\"async\" alt=\"Compilation native dans Quarkus \u2013 pourquoi est-ce important\" 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 est une pile Java con\u00e7ue pour <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/topics\/kubernetes\/\">Kubernetes<\/a><\/noindex>. Et bien qu'il reste encore beaucoup \u00e0 faire ici, nous avons bien travaill\u00e9 sur de nombreux aspects, y compris l'optimisation de la JVM et de plusieurs frameworks. L'une des caract\u00e9ristiques de Quarkus qui a suscit\u00e9 un vif int\u00e9r\u00eat parmi les d\u00e9veloppeurs est son approche int\u00e9gr\u00e9e et transparente pour transformer le code Java en fichiers ex\u00e9cutables pour un syst\u00e8me d'exploitation sp\u00e9cifique (ce que l'on appelle la \u00ab compilation native \u00bb) par analogie avec C et C++, o\u00f9 cette compilation a g\u00e9n\u00e9ralement lieu \u00e0 la fin d'un cycle de construction, de test et de d\u00e9ploiement.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nEt bien que la compilation native, comme nous allons le montrer ci-dessous, soit importante, il est bon de noter que Quarkus fonctionne effectivement tr\u00e8s bien m\u00eame sur une machine Java classique avec OpenJDK Hotspot gr\u00e2ce aux am\u00e9liorations de performance que nous avons r\u00e9alis\u00e9es dans toute la pile. Par cons\u00e9quent, la compilation native doit \u00eatre envisag\u00e9e comme un bonus suppl\u00e9mentaire que l'on peut utiliser par pr\u00e9f\u00e9rence ou n\u00e9cessit\u00e9. En fait, en ce qui concerne les images natives, Quarkus s'appuie dans une large mesure sur OpenJDK. De plus, le mode dev, tr\u00e8s bien accueilli par les d\u00e9veloppeurs, permet de tester presque instantan\u00e9ment les changements gr\u00e2ce \u00e0 des capacit\u00e9s avanc\u00e9es d'ex\u00e9cution dynamique du code mises en \u0153uvre dans Hotspot. En outre, lors de la cr\u00e9ation d'images natives, GraalVM utilise la biblioth\u00e8que de classes d'OpenJDK et les capacit\u00e9s de HotSpot.<\/p>\n<p>Alors, pourquoi la compilation native est-elle n\u00e9cessaire, si tout est d\u00e9j\u00e0 si bien optimis\u00e9 ? C'est la question \u00e0 laquelle nous allons tenter de r\u00e9pondre ci-dessous.<\/p>\n<p>Commen\u00e7ons par l'\u00e9vidence : Red Hat poss\u00e8de une vaste exp\u00e9rience dans l'optimisation de la JVM, des piles et des frameworks au cours du d\u00e9veloppement du projet <noindex><a rel=\"nofollow\" href=\"http:\/\/www.jboss.org\/\">JBoss<\/a><\/noindex>, y compris :<\/p>\n<ul>\n<li>Le premier serveur d'applications pour le cloud sur la plateforme <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>Le premier serveur d'applications pour les ordinateurs <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.redhat.com\/index.php\/videos\/youtube\/9c-g7UxT0nk\/\">Plug PC<\/a><\/noindex>.<\/li>\n<li>Le premier serveur d'applications pour fonctionner sur <noindex><a rel=\"nofollow\" href=\"http:\/\/blog.arungupta.me\/wildfly-on-raspberry-pi-techtip-24\/\">Raspberry Pi<\/a><\/noindex>.<\/li>\n<li>Une s\u00e9rie de projets fonctionnant sur des appareils <noindex><a rel=\"nofollow\" href=\"http:\/\/www.jboss.org\/iot\/android\/\">Android<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nNous travaillons depuis de nombreuses ann\u00e9es sur les probl\u00e8mes de d\u00e9marrage d'applications Java dans le cloud et sur des appareils \u00e0 ressources limit\u00e9es (lire, IoT) et nous avons appris \u00e0 tirer le meilleur parti de la JVM en termes de performance et d'optimisation de la m\u00e9moire. Comme beaucoup d'autres, nous travaillons depuis longtemps avec la compilation native d'applications Java via <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> et m\u00eame <noindex><a rel=\"nofollow\" href=\"https:\/\/source.android.com\/devices\/tech\/dalvik\">Dalvik<\/a><\/noindex> Nous sommes bien conscients des avantages et inconv\u00e9nients de cette approche (par exemple, le dilemme entre l'universalit\u00e9 du \u00ab build once \u2013 run-anywhere \u00bb et le fait que les applications compil\u00e9es occupent moins d'espace et d\u00e9marrent plus rapidement).<\/p>\n<p>Pourquoi est-il si important de prendre en compte ces avantages et inconv\u00e9nients ? Parce que dans certaines situations, leur rapport devient d\u00e9terminant :<\/p>\n<ul>\n<li>Par exemple, dans les environnements sans serveur \/ bas\u00e9s sur des \u00e9v\u00e9nements, o\u00f9 <noindex><a rel=\"nofollow\" href=\"https:\/\/mikhail.io\/2018\/08\/serverless-cold-start-war\/\">les services doivent absolument s'ex\u00e9cuter<\/a><\/noindex> en temps r\u00e9el (dur ou doux) pour pouvoir r\u00e9agir aux \u00e9v\u00e9nements. Contrairement aux services persistants de longue dur\u00e9e, ici, la dur\u00e9e du d\u00e9marrage \u00e0 froid augmente de mani\u00e8re critique le temps de r\u00e9ponse \u00e0 une demande. Le d\u00e9marrage de la JVM prend encore un temps consid\u00e9rable, et bien que dans certains cas, il soit possible de le r\u00e9duire par des m\u00e9thodes mat\u00e9rielles, la diff\u00e9rence entre une seconde et 5 millisecondes peut \u00eatre une question de vie ou de mort. Oui, il est possible de jouer avec la cr\u00e9ation de r\u00e9serves chaudes de machines Java (ce que nous avons fait par exemple lors de <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/projectodd\/kwsk\">la migration d'OpenWhisk vers Knative<\/a><\/noindex>), mais cela ne garantit pas \u00e0 lui seul un nombre ad\u00e9quat de JVM pour traiter les demandes \u00e0 mesure que la charge augmente. Et d'un point de vue \u00e9conomique, ce n'est certainement pas la meilleure option.<\/li>\n<li>Ensuite, il y a cet aspect souvent mentionn\u00e9, \u00e0 savoir la multi-tenance. Bien que la JVM ait beaucoup \u00e9volu\u00e9 pour se rapprocher des syst\u00e8mes d'exploitation, elle n'est toujours pas capable de faire ce \u00e0 quoi nous sommes si habitu\u00e9s sous Linux \u2013 isoler les processus. Par cons\u00e9quent, une d\u00e9faillance d'un thread peut paralyser toute la machine Java. Beaucoup essaient de contourner cet inconv\u00e9nient en allouant une JVM distincte pour chaque utilisateur, afin de minimiser les cons\u00e9quences d'un \u00e9chec. Cela a du sens, mais cela ne s'accorde pas bien avec l'\u00e9volutivit\u00e9.<\/li>\n<li>De plus, pour les applications orient\u00e9es cloud, un indicateur important est la densit\u00e9 des services sur l'h\u00f4te. Le passage \u00e0 la m\u00e9thodologie <noindex><a rel=\"nofollow\" href=\"https:\/\/12factor.net\/\">12 facteurs d'application<\/a><\/noindex>, les microservices et Kubernetes augmentent le nombre de machines Java par application. Cela signifie que, d'une part, cela offre de l'\u00e9lasticit\u00e9 et de la fiabilit\u00e9, mais en m\u00eame temps, la consommation de m\u00e9moire de base augmente par service, bien qu'une partie de ces co\u00fbts ne soit pas toujours strictement n\u00e9cessaire. Les fichiers ex\u00e9cutables compil\u00e9s statiquement en profitent gr\u00e2ce \u00e0 diverses techniques d'optimisation, comme l'\u00e9limination du code mort de bas niveau, o\u00f9 seules les parties des frameworks (y compris le JDK lui-m\u00eame) r\u00e9ellement utilis\u00e9es par le service sont incluses dans l'image finale. C'est pourquoi la compilation native de Quarkus aide \u00e0 placer plus dens\u00e9ment les instances de services sur l'h\u00f4te sans compromettre la s\u00e9curit\u00e9.<\/li>\n<\/ul>\n<p>\nEn r\u00e9alit\u00e9, les arguments ci-dessus suffisent d\u00e9j\u00e0 \u00e0 comprendre la justification de la compilation native du point de vue des participants au projet Quarkus. Cependant, il existe une autre raison, non technique mais tout aussi importante : ces derni\u00e8res ann\u00e9es, de nombreux programmeurs et entreprises de d\u00e9veloppement ont abandonn\u00e9 Java au profit de nouveaux langages de programmation, estimant que Java, avec ses JVM, ses stacks et ses frameworks, \u00e9tait devenue trop gourmande en m\u00e9moire, trop lente, etc.<\/p>\n<p>Cependant, l'habitude d'utiliser le m\u00eame outil pour r\u00e9soudre tous les probl\u00e8mes \u2013 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.reddit.com\/r\/java\/comments\/8xv3ha\/does_anybody_use_spring_boot_with_aws_lambda_do\/\">ce n'est pas toujours correct<\/a><\/noindex>. Parfois, il est pr\u00e9f\u00e9rable de prendre du recul et de chercher autre chose. Et si Quarkus pousse les gens \u00e0 faire une pause et \u00e0 r\u00e9fl\u00e9chir, c'est bon pour tout l'\u00e9cosyst\u00e8me Java. Quarkus incarne une approche novatrice de la cr\u00e9ation d'applications plus efficaces, rendant Java plus pertinent pour les nouvelles architectures d'applications, telles que serverless. De plus, gr\u00e2ce \u00e0 sa modularit\u00e9, nous esp\u00e9rons que Quarkus b\u00e9n\u00e9ficiera d'un v\u00e9ritable \u00e9cosyst\u00e8me d'extensions Java, augmentant consid\u00e9rablement le nombre de frameworks qui prendront en charge la compilation native dans les applications d\u00e8s le d\u00e9part.<br \/>\n<br \/>Source : <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 - 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\/fr\/blog\/administrirovanie\/nativnaya-kompilyacziya-v-quarkus-pochemu-eto-vazhno\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\/fr\/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\udd47Compilation native dans Quarkus \u2013 pourquoi c'est important | ProHoster","description":"Bonjour \u00e0 tous !","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/nativnaya-kompilyacziya-v-quarkus-pochemu-eto-vazhno","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/76573","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=76573"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/76573\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/76574"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=76573"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=76573"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=76573"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}