{"id":105323,"date":"2022-10-18T15:37:00","date_gmt":"2022-10-18T13:37:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-frejmvorka-dlya-sozdaniya-setevyh-prilozhenij-ergoframework-2-2"},"modified":"2022-10-18T15:37:00","modified_gmt":"2022-10-18T13:37:00","slug":"vypusk-frejmvorka-dlya-sozdaniya-setevyh-prilozhenij-ergoframework-2-2","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-frejmvorka-dlya-sozdaniya-setevyh-prilozhenij-ergoframework-2-2","title":{"rendered":"Lan\u00e7amento do framework para cria\u00e7\u00e3o de aplica\u00e7\u00f5es de rede ErgoFramework 2.2","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Foi lan\u00e7ado o ErgoFramework 2.2, que implementa toda a pilha de rede Erlang e sua biblioteca OTP na linguagem Go. O framework fornece ao desenvolvedor uma ferramenta flex\u00edvel do mundo Erlang para criar solu\u00e7\u00f5es distribu\u00eddas em Go, utilizando templates de design de uso geral como gen.Application, gen.Supervisor e gen.Server, al\u00e9m de especializados \u2014 gen.Stage (pub\/sub distribu\u00eddo), gen.Saga (transa\u00e7\u00f5es distribu\u00eddas, implementa\u00e7\u00e3o do padr\u00e3o de design SAGA) e gen.Raft (implementa\u00e7\u00e3o do protocolo Raft).     <\/p>\n<p>Al\u00e9m disso, o framework oferece funcionalidade de proxy com capacidade de criptografia de ponta a ponta, que n\u00e3o est\u00e1 dispon\u00edvel em Erlang\/OTP e Elixir. Como n\u00e3o h\u00e1 um an\u00e1logo direto do processo Erlang na linguagem Go, o framework utiliza goroutine como base para gen.Server, com um wrapper 'recover' para possibilitar o tratamento de exce\u00e7\u00f5es. O c\u00f3digo do projeto \u00e9 distribu\u00eddo sob a licen\u00e7a MIT.    <\/p>\n<p>A pilha de rede no ErgoFramework implementa completamente a especifica\u00e7\u00e3o do protocolo DIST do Erlang. Isso significa que aplica\u00e7\u00f5es escritas com base no ErgoFramework funcionam nativamente com quaisquer aplica\u00e7\u00f5es escritas nas linguagens de programa\u00e7\u00e3o Erlang ou Elixir (exemplo de intera\u00e7\u00e3o com um n\u00f3 Erlang). Tamb\u00e9m vale a pena notar que o padr\u00e3o de design gen.Stage foi implementado conforme a especifica\u00e7\u00e3o do Elixir GenStage e \u00e9 totalmente compat\u00edvel com ele (exemplo de implementa\u00e7\u00e3o).    <\/p>\n<p>No novo lan\u00e7amento:  <\/p>\n<ul>\n<li class=\"l\"> Novos templates adicionados\n<ul>\n<li class=\"l\"> gen.Web \u2014 padr\u00e3o de design Web API Gateway (tamb\u00e9m conhecido como Backend For Frontend). Exemplo.\n<li class=\"l\"> gen.TCP \u2014 padr\u00e3o que permite implementar um pool de acceptors de conex\u00f5es TCP com o m\u00ednimo de esfor\u00e7o na escrita de c\u00f3digo. Exemplo.\n<li class=\"l\">  gen.UDP \u2014 semelhante ao padr\u00e3o gen.TCP, mas para o protocolo UDP. Exemplo.  <\/ul>\n<li class=\"l\"> Foi proposta uma nova funcionalidade de Events com a implementa\u00e7\u00e3o de um simples barramento de eventos dentro do n\u00f3, que permite criar mecanismos de troca de eventos (pub\/sub) entre processos locais. Exemplo.\n<li class=\"l\"> Foi adicionada a suporte ao registro de tipos, que permite realizar automaticamente a serializa\u00e7\u00e3o\/deserializa\u00e7\u00e3o de mensagens no tipo nativo de dados Golang. Isso significa que n\u00e3o h\u00e1 mais necessidade de usar etf.TermIntoStruct para cada mensagem recebida. Os tipos registrados ser\u00e3o transformados automaticamente no tipo especificado, o que aumenta significativamente o desempenho da troca de mensagens entre n\u00f3s distribu\u00eddos.    <\/ul>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=57933\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0440\u0435\u043b\u0438\u0437 ErgoFramework 2.2, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0441\u0442\u0435\u043a Erlang \u0438 \u0435\u0433\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 OTP \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Go. \u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u0433\u0438\u0431\u043a\u0438\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0438\u0437 \u043c\u0438\u0440\u0430 Erlang \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Go \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f gen.Application, gen.Supervisor \u0438 gen.Server, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 &#8212; gen.Stage (distributed pub\/sub), gen.Saga (distributed transactions, \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u0430 [&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-105323","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=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0440\u0435\u043b\u0438\u0437 ErgoFramework 2.2, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0441\u0442\u0435\u043a Erlang \u0438 \u0435\u0433\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 OTP \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Go.\" \/>\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\/pt\/blog\/news\/vypusk-frejmvorka-dlya-sozdaniya-setevyh-prilozhenij-ergoframework-2-2\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\u0412\u044b\u043f\u0443\u0441\u043a \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 ErgoFramework 2.2 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0440\u0435\u043b\u0438\u0437 ErgoFramework 2.2, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0441\u0442\u0435\u043a Erlang \u0438 \u0435\u0433\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 OTP \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Go.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-frejmvorka-dlya-sozdaniya-setevyh-prilozhenij-ergoframework-2-2\" \/>\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=\"2022-10-18T13:37:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-10-18T13:37:00+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\udd47Lan\u00e7amento do framework para cria\u00e7\u00e3o de aplica\u00e7\u00f5es de rede ErgoFramework 2.2 | ProHoster","description":"Foi lan\u00e7ado a nova vers\u00e3o do ErgoFramework 2.2, que implementa a pilha de rede completa do Erlang e sua biblioteca OTP na linguagem Go.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-frejmvorka-dlya-sozdaniya-setevyh-prilozhenij-ergoframework-2-2","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\u0412\u044b\u043f\u0443\u0441\u043a \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 ErgoFramework 2.2 | ProHoster","og:description":"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0440\u0435\u043b\u0438\u0437 ErgoFramework 2.2, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0441\u0442\u0435\u043a Erlang \u0438 \u0435\u0433\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 OTP \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Go.","og:url":"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-frejmvorka-dlya-sozdaniya-setevyh-prilozhenij-ergoframework-2-2","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":"2022-10-18T13:37:00+00:00","article:modified_time":"2022-10-18T13:37:00+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\/pt\/wp-json\/wp\/v2\/posts\/105323","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=105323"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/105323\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=105323"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=105323"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=105323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}