Liberigo de la kadro por krei retajn aplikaĵojn ErgoFramework 2.2

La sekva eldono de ErgoFramework 2.2 okazis, efektivigante la kompletan retan stakon de Erlang kaj ĝian OTP-bibliotekon en la Go-lingvo. La kadro provizas la programiston per flekseblaj iloj el la mondo de Erlang por krei distribuitajn solvojn en la lingvo Go uzante pretajn ĝeneraluzeblajn desegnajn ŝablonojn gen.Application, gen.Supervisor kaj gen.Server, kaj ankaŭ specialigitajn - gen. Stage (distribuita drinkejo/sub), gen. Saga (distribuitaj transakcioj, efektivigo de la SAGA dezajnpadrono) kaj gen.Raft (efektivigo de la Raft-protokolo).

Krome, la kadro provizas prokuran funkciojn kun fin-al-fina ĉifrado, kiu ne estas disponebla en Erlang/OTP kaj Elixir. Ĉar la Go-lingvo ne havas rektan analogon de la Erlang-procezo, la kadro uzas gorutinojn kiel la bazon por gen.Server kun "recover" envolvaĵo por trakti esceptajn situaciojn. La projektkodo estas distribuita sub la MIT-licenco.

La retstako en ErgoFramework plene efektivigas la DIST-specifon de la Erlang-protokolo. Ĉi tio signifas, ke aplikaĵoj skribitaj surbaze de ErgoFramework funkcias denaske kun ajnaj aplikoj skribitaj en la programlingvoj Erlang aŭ Elixir (ekzemplo de interago kun Erlang-nodo). Estas ankaŭ notinde, ke la gen.Stage desegna ŝablono estas efektivigita laŭ la specifo Elixir GenStage kaj estas plene kongrua kun ĝi (ekzemplo de efektivigo).

En la nova eldono:

  • Novaj ŝablonoj aldonitaj
    • gen.Web estas Web API Gateway (ankaŭ konata kiel Backend For Frontend) desegna ŝablono. Ekzemplo.
    • gen.TCP estas ŝablono, kiu ebligas al vi efektivigi aron da TCP-konekt-akceptantoj kun minimuma peno por skribi kodon. Ekzemplo.
    • gen.UDP - simila al la ŝablono gen.TCP, nur por la protokolo UDP. Ekzemplo.
  • Nova funkcieco de Eventoj estis proponita kun la efektivigo de simpla eventobuso ene de nodo, kiu ebligas al vi krei mekanismojn por interŝanĝi eventojn (pub/sub) inter lokaj procezoj. Ekzemplo.
  • Aldonita subteno por tipregistrado, kiu permesas aŭtomatan seriigon/deseriigon de mesaĝoj en indiĝenan datumtipo de Golang. Ĉi tio signifas, ke vi ne plu bezonas uzi etf.TermIntoStruct por ĉiu ricevita mesaĝo. Registritaj tipoj estos transformitaj al la specifita tipo aŭtomate, kio signife plirapidigas la agadon de mesaĝ-interŝanĝo inter distribuitaj nodoj.

fonto: opennet.ru

Aldoni komenton