Release of framework for creating network applications Ergoframework 2.2

The next release of ergoframework 2.2 , which implements the full network of Erlang and its OTP library in the GO language. The framework provides the developer with flexible tools from the Erlang world to create distributed solutions in GO using ready -made general design templates Gen.Application, Gen.Supervisor and Gen.Server, as well as specialized – Gen.stage (Distributed Pub/Sube), Gen. Saga (Distributed Transactions, implementation of the design template SAGA) and Gen.raft (implementation of the RAFT protocol).

In addition, the framework of provides The functionality of proxy with the possibility of through encryption, inaccessible to Erlang /OTP and ELIXIR. Since the GO language does not have a direct analogue of the Erlang process, Goroutine is used in the framework as the basis for Gen.Server with a wrap of “Recover” for the possibility of processing exceptional situations. Project code is distributed under the license mit.

Network stack in Ergoframework fully implements the specification of the DIST of the Erlang protocol. This means that applications written on the basis of Ergoframework are working with any applications written in the programming languages ​​Erlang or Elixir ( Example interaction with Erlang Noda). It is also worth noting that the design template Gen.Stage is implemented according to the Elixir Genstage specification and is completely compatible with it ( example implementation ).

In the new issue:

  • Added new templates
    • gen.web – Design Template for the Web API Gateway (also known as Backend for FrontenD). example .
    • .

  • . . .

  • gen.tcp is a template that allows you to implement a TCP conical pool with minimal efforts in writing code. example .
  • . . . .

  • gen.udp – similar to the Gen.TCP template, only for the UDP protocol. example .
  • . . . .

  • A new functionality of EVENTS is proposed with the implementation of a simple event tire inside the Noda, which allows you to create mechanisms for the exchange of events (PUB/SUB) among local processes. example .
  • . . .

  • Added support for registration of types, which allows you to automatically carry out serialization/deserization of messages in the native type of data GOLANG. This means no longer need to use ETF.TermintostRect for each message received. The registered types will be transformed into a given type automatically, which significantly accelerates the performance of messages between distributed nodes.
  • /Media reports.