{"id":108413,"date":"2023-05-08T12:48:42","date_gmt":"2023-05-08T10:48:43","guid":{"rendered":"https:\/\/prohoster.info\/?p=108413"},"modified":"2023-05-08T16:10:08","modified_gmt":"2023-05-08T14:10:08","slug":"sozdatel-llvm-razvivaet-novyj-yazyk-programmirovaniya-mojo","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/news\/sozdatel-llvm-razvivaet-novyj-yazyk-programmirovaniya-mojo","title":{"rendered":"Tw\u00f3rca LLVM rozwija nowy j\u0119zyk programowania Mojo","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Chris Lattner, za\u0142o\u017cyciel i g\u0142\u00f3wny architekt LLVM, oraz tw\u00f3rca j\u0119zyka programowania Swift, i Tim Davis, by\u0142y kierownik projekt\u00f3w AI w Google, takich jak Tensorflow i JAX, zaprezentowali nowy j\u0119zyk programowania Mojo, kt\u00f3ry \u0142\u0105czy prostot\u0119 u\u017cycia w badaniach i szybkim tworzeniu prototyp\u00f3w z adekwatno\u015bci\u0105 do tworzenia wysokowydajnych produkt\u00f3w ko\u0144cowych. Pierwsze osi\u0105gane jest dzi\u0119ki u\u017cyciu znajomej sk\u0142adni j\u0119zyka Python, a drugie dzi\u0119ki mo\u017cliwo\u015bci kompilacji do kodu maszynowego, mechanizmom bezpiecznej obs\u0142ugi pami\u0119ci oraz anga\u017cowaniu \u015brodk\u00f3w do przyspieszania oblicze\u0144 na poziomie sprz\u0119towym.    <\/p>\n<p>Projekt skupia si\u0119 na wykorzystaniu go do rozwoju w dziedzinie uczenia maszynowego, ale jednocze\u015bnie jest przedstawiany jako j\u0119zyk og\u00f3lnego przeznaczenia, rozszerzaj\u0105cy mo\u017cliwo\u015bci j\u0119zyka Python o zasoby programowania systemowego i odpowiedni do szerokiego zakresu zada\u0144. Na przyk\u0142ad j\u0119zyk mo\u017cna zastosowa\u0107 w takich dziedzinach, jak obliczenia o wysokiej wydajno\u015bci, przetwarzanie i konwersja danych. Interesuj\u0105c\u0105 cech\u0105 Mojo jest mo\u017cliwo\u015b\u0107 u\u017cycia symbolu emoji &#171;&#128293;&#187; jako rozszerzenia dla plik\u00f3w z kodem (na przyk\u0142ad &#171;helloworld.&#128293;&#187;), obok tekstowego rozszerzenia &#171;.mojo&#187;.       <\/p>\n<p>Obecnie j\u0119zyk znajduje si\u0119 w intensywnym rozwoju, a do testowania dost\u0119pny jest tylko interfejs online. Oddzielne wersje do uruchomienia na lokalnych systemach b\u0119d\u0105 opublikowane p\u00f3\u017aniej, po zebraniu opinii na temat dzia\u0142ania interaktywnego \u015brodowiska webowego. \u0179r\u00f3d\u0142a kompilatora, JIT i innych zwi\u0105zanych z projektem narz\u0119dzi planuje si\u0119 otworzy\u0107 po zako\u0144czeniu projektowania wewn\u0119trznej architektury (model rozwoju dzia\u0142aj\u0105cego prototypu za zamkni\u0119tymi drzwiami przypomina pocz\u0105tkow\u0105 faz\u0119 rozwoju LLVM, Clang i Swift). Poniewa\u017c sk\u0142adnia Mojo opiera si\u0119 na j\u0119zyku Python, a system typ\u00f3w jest bliski C\/C++, w przysz\u0142o\u015bci planowane jest opracowanie narz\u0119dzi do u\u0142atwienia przenoszenia istniej\u0105cych projekt\u00f3w napisanych w C\/C++ i Pythonie na Mojo, a tak\u017ce do tworzenia hybrydowych projekt\u00f3w \u0142\u0105cz\u0105cych kod w Pythonie i Mojo.        <\/p>\n<p>Projekt jest zaprojektowany w celu wykorzystania dost\u0119pnych zasob\u00f3w sprz\u0119towych system\u00f3w heterogenicznych do przeprowadzania oblicze\u0144. Na przyk\u0142ad, aplikacje w j\u0119zyku Mojo oraz r\u00f3wnoleg\u0142e obliczenia mog\u0105 wykorzystywa\u0107 GPU, specjalizowane akceleratory do uczenia maszynowego oraz instrukcje procesor\u00f3w wektorowych (SIMD). Przyczyn\u0105 rozwoju osobnego podzbioru j\u0119zyka Python, zamiast pracy nad optymalizacj\u0105 istniej\u0105cego CPython, jest orientacja na kompilacj\u0119, integracja mo\u017cliwo\u015bci programowania systemowego oraz zastosowanie fundamentalnie innej wewn\u0119trznej architektury, kt\u00f3ra pozwala na wykonywanie kodu na GPU i r\u00f3\u017cnych sprz\u0119towych akceleratorach. Programi\u015bci Mojo d\u0105\u017c\u0105 do jak najwi\u0119kszej zgodno\u015bci z CPython.            <\/p>\n<p>Mojo mo\u017ce by\u0107 u\u017cywany zar\u00f3wno w trybie interpretacji z wykorzystaniem JIT, jak i do kompilacji do plik\u00f3w wykonywalnych (AOT, ahead-of-time). Kompilator wykorzystuje nowoczesne technologie automatycznej optymalizacji, cache'owania oraz rozproszonej kompilacji. Kody \u017ar\u00f3d\u0142owe w j\u0119zyku Mojo s\u0105 transformowane do niskopoziomowego kodu po\u015bredniego MLIR (Multi-Level Intermediate Representation), rozwijanego przez projekt LLVM i oferuj\u0105cego dodatkowe mo\u017cliwo\u015bci optymalizacji oblicze\u0144 grafu przep\u0142ywu danych. Kompilator umo\u017cliwia generacj\u0119 kodu maszynowego przy u\u017cyciu r\u00f3\u017cnych backend\u00f3w wspieraj\u0105cych MLIR.        <\/p>\n<p>Wykorzystanie dodatkowych mechanizm\u00f3w sprz\u0119towych do przyspieszania oblicze\u0144 pozwala na osi\u0105gni\u0119cie wydajno\u015bci, kt\u00f3ra w intensywnych obliczeniach przewy\u017csza aplikacje napisane w C\/C++. Na przyk\u0142ad, podczas testowania aplikacji do generacji mno\u017cno\u015bci Mandlebrota, skompilowana aplikacja w j\u0119zyku Mojo, uruchomiona w chmurze AWS (r7iz.metal-16xl), okaza\u0142a si\u0119 6 razy szybsza od realizacji w C++ (0.03 sek. w por\u00f3wnaniu do 0.20 sek.), a tak\u017ce 35 tysi\u0119cy razy szybsza ni\u017c aplikacja w Pythonie przy u\u017cyciu standardowego CPython 3.10.9 (0.03 sek. w por\u00f3wnaniu do 1027 sek.) oraz 1500 razy szybsza przy u\u017cyciu PYPY (0.03 sek. w por\u00f3wnaniu do 46.1 sek.).    <\/p>\n<p>Podczas oceny wydajno\u015bci w zakresie rozwi\u0105zywania problem\u00f3w uczenia maszynowego, AI-stek Modular Inference Engine, napisany w j\u0119zyku Mojo, w por\u00f3wnaniu do rozwi\u0105zania opartego na bibliotece TensorFlow okaza\u0142 si\u0119 na systemie z procesorem Intel 3 razy szybszy w przetwarzaniu modelu j\u0119zykowego, 6.4 razy szybszy w wykonywaniu modelu rekomendacji i 2.1 razy szybszy w pracy z modelami do przetwarzania informacji wizualnych. Przy u\u017cyciu procesor\u00f3w AMD zyski przy u\u017cyciu Mojo wynios\u0142y 3.2, 5 i 2.2 razy, a przy u\u017cyciu procesor\u00f3w ARM \u2014 5.3, 7.5 i 1.7 raza, odpowiednio. Rozwi\u0105zanie oparte na PyTorch pozostawa\u0142o w tyle za Mojo o 1.4, 1.1 i 1.5 raza na CPU Intel, o 2.1, 1.2 i 1.5 raza na CPU AMD oraz o 4, 4.3 i 1.3 raza na CPU ARM.      <center><img decoding=\"async\" alt=\"Tw\u00f3rca LLVM rozwija nowy j\u0119zyk programowania Mojo\" src=\"\/wp-content\/uploads\/2023\/05\/df2598980ce4ed179ec3042d500235db.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>          <\/p>\n<p>J\u0119zyk wspiera statyczne typowanie oraz narz\u0119dzia do bezpiecznej niskopoziomowej pracy z pami\u0119ci\u0105, przypominaj\u0105ce mo\u017cliwo\u015bci j\u0119zyka Rust, takie jak monitorowanie czasu \u017cycia odwo\u0142a\u0144 i sprawdzanie po\u017cyczania zmiennych (borrow checker). Opr\u00f3cz narz\u0119dzi do bezpiecznej pracy ze wska\u017anikami, w j\u0119zyku dost\u0119pne s\u0105 r\u00f3wnie\u017c mo\u017cliwo\u015bci niskopoziomowej pracy, na przyk\u0142ad bezpo\u015bredni dost\u0119p do pami\u0119ci w trybie unsafe z u\u017cyciem typu Pointer, wywo\u0142anie pojedynczych instrukcji SIMD lub dost\u0119p do rozszerze\u0144 sprz\u0119towych, takich jak TensorCores i AMX.    <center><img decoding=\"async\" alt=\"Tw\u00f3rca LLVM rozwija nowy j\u0119zyk programowania Mojo\" src=\"\/wp-content\/uploads\/2023\/05\/000b92c5bbb54eec64649b30a434be6d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <\/p>\n<p>Aby upro\u015bci\u0107 rozdzielenie klasycznego i zoptymalizowanego kodu Pythona dla funkcji z wyra\u017anym okre\u015bleniem typ\u00f3w dla wszystkich zmiennych, zaproponowano u\u017cycie osobnego s\u0142owa kluczowego &#171;fn&#187; zamiast &#171;def&#187;. Podobnie dla klas, w przypadku statycznego pakowania danych w pami\u0119ci podczas kompilacji (jak w C) zamiast &#171;class&#187; mo\u017cna u\u017cy\u0107 typu &#171;struct&#187;. Mo\u017cliwy jest r\u00f3wnie\u017c prosty import modu\u0142\u00f3w w j\u0119zykach C\/C++, na przyk\u0142ad, aby zaimportowa\u0107 funkcj\u0119 cos z biblioteki math, mo\u017cna u\u017cy\u0107 &#171;from &#171;math.h&#187; import cos&#187;.<br \/>\n<br \/>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=59094\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u0440\u0438\u0441 \u041b\u0430\u0442\u043d\u0435\u0440 (Chris Lattner), \u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0438 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 LLVM, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Swift, \u0438 \u0422\u0438\u043c \u0414\u044d\u0432\u0438\u0441 (Tim Davis), \u0431\u044b\u0432\u0448\u0438\u0439 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c AI-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 Google, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Tensorflow \u0438 JAX, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Mojo, \u0441\u043e\u0447\u0435\u0442\u0430\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u0443 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043e\u043a \u0438 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u043e\u0432 \u0441 \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432. \u041f\u0435\u0440\u0432\u043e\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":108414,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-108413","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u0440\u0438\u0441 \u041b\u0430\u0442\u043d\u0435\u0440 (Chris Lattner), \u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0438 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 LLVM, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Swift, \u0438 \u0422\u0438\u043c \u0414\u044d\u0432\u0438\u0441 (Tim Davis), \u0431\u044b\u0432\u0448\u0438\u0439 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c AI-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 Google, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Tensorflow \u0438 JAX.\" \/>\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\/pl\/blog\/news\/sozdatel-llvm-razvivaet-novyj-yazyk-programmirovaniya-mojo\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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\u0421\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c LLVM \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Mojo | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u0440\u0438\u0441 \u041b\u0430\u0442\u043d\u0435\u0440 (Chris Lattner), \u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0438 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 LLVM, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Swift, \u0438 \u0422\u0438\u043c \u0414\u044d\u0432\u0438\u0441 (Tim Davis), \u0431\u044b\u0432\u0448\u0438\u0439 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c AI-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 Google, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Tensorflow \u0438 JAX.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/news\/sozdatel-llvm-razvivaet-novyj-yazyk-programmirovaniya-mojo\" \/>\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=\"2023-05-08T10:48:43+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2023-05-08T14:10:08+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\udd47Tw\u00f3rca LLVM rozwija nowy j\u0119zyk programowania Mojo | ProHoster","description":"Chris Lattner, za\u0142o\u017cyciel i g\u0142\u00f3wny architekt LLVM, a tak\u017ce tw\u00f3rca j\u0119zyka programowania Swift, oraz Tim Davis, by\u0142y kierownik projekt\u00f3w AI w Google, takich jak Tensorflow i JAX.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/news\/sozdatel-llvm-razvivaet-novyj-yazyk-programmirovaniya-mojo","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","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\u0421\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c LLVM \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Mojo | ProHoster","og:description":"\u041a\u0440\u0438\u0441 \u041b\u0430\u0442\u043d\u0435\u0440 (Chris Lattner), \u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0438 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 LLVM, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Swift, \u0438 \u0422\u0438\u043c \u0414\u044d\u0432\u0438\u0441 (Tim Davis), \u0431\u044b\u0432\u0448\u0438\u0439 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c AI-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 Google, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Tensorflow \u0438 JAX.","og:url":"https:\/\/prohoster.info\/pl\/blog\/news\/sozdatel-llvm-razvivaet-novyj-yazyk-programmirovaniya-mojo","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":"2023-05-08T10:48:43+00:00","article:modified_time":"2023-05-08T14:10:08+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/108413","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=108413"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/108413\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/108414"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=108413"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=108413"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=108413"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}