Skip to content

v2.2.0

Compare
Choose a tag to compare
@halturin halturin released this 18 Oct 06:25
· 16 commits to master since this release
093c5d1
  • Introduced gen.Web behavior. It implements Web API Gateway pattern is also sometimes known as the "Backend For Frontend" (BFF). See example examples/genweb
  • Introduced gen.TCP behavior - socket acceptor pool for TCP protocols. It provides everything you need to accept TCP connections and process packets with a small code base and low latency. Here is simple example examples/gentcp
  • Introduced gen.UDP - the same as gen.TCP, but for UDP protocols. Example is here examples/genudp
  • Introduced Events. This is a simple pub/sub feature within a node - any gen.Process can become a producer by registering a new event gen.Event using method gen.Process.RegisterEvent, while the others can subscribe to these events using gen.Process.MonitorEvent. Subscriber process will also receive gen.MessageEventDown if a producer process went down (terminated). This feature behaves in a monitor manner but only works within a node. You may also want to subscribe to a system event - node.EventNetwork to receive event notification on connect/disconnect any peers.
  • Introduced Cloud Client - allows connecting to the cloud platform https://ergo.sevices. You may want to register your email there, and we will inform you about the platform launch day
  • Introduced type registration for the ETF encoding/decoding. This feature allows you to get rid of manually decoding with etf.TermIntoStruct for the receiving messages. Register your type using etf.RegisterType(...), and you will be receiving messages in a native type
  • Predefined set of errors has moved to the lib package
  • Updated gen.ServerBehavior.HandleDirect method (got extra argument etf.Ref to distinguish the requests). This change allows you to handle these requests asynchronously using method gen.ServerProcess.Reply(...)
  • Updated node.Options. Now it has field Listeners (type node.Listener). It allows you to start any number of listeners with custom options - Port, TLS settings, or custom Handshake/Proto interfaces
  • Fixed build on 32-bit arch
  • Fixed freezing on ARM arch #102
  • Fixed problem with encoding negative int8
  • Fixed #103 (there was an issue on interop with Elixir's GenStage)
  • Fixed node stuck on start if it uses the name which is already taken in EPMD
  • Fixed incorrect gen.ProcessOptions.Context handling