Skip to content

Latest commit

 

History

History
53 lines (45 loc) · 3.83 KB

ChangeLog.md

File metadata and controls

53 lines (45 loc) · 3.83 KB

Changelog

All notable changes to this project will be documented in this file.

This format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

1.2.0 - 2021-04-07

  • Added TLS support. Introduced new option TLSmode in ergo.NodeOptions with the following values:
    • ergo.TLSmodeDisabled default value. encryption is disabled
    • ergo.TLSmodeAuto enables encryption with autogenerated and self-signed certificate
    • ergo.TLSmodeStrict enables encryption with specified server/client certificates and keys there is example of usage examples/nodetls/tlsGenServer.go
  • Introduced GenStage behavior implementation (originated from Elixir world). GenStage is an abstraction built on top of GenServer to provide a simple way to create a distributed Producer/Consumer architecture, while automatically managing the concept of backpressure. This implementation is fully compatible with Elixir's GenStage. Example here examples/genstage or just run it go run ./examples/genstage to see it in action
  • Introduced new methods AddStaticRoute/RemoveStaticRoute for Node. This feature allows you to keep EPMD service behind a firewall.
  • Introduced SetTrapExit/TrapExit methods for Process in order to control the trapping gen.MessageExit message (for the linked processes)
  • Introduced TermMapIntoStruct and TermProplistIntoStruct functions. It should be easy now to transform etf.Map or []eft.ProplistElement into the given struct. See documentation for the details.
  • Improved DIST implementation in order to support KeepAlive messages and get rid of platform-dependent syscall usage
  • Fixed TermIntoStruct function. There was a problem with Tuple value transforming into the given struct
  • Fixed incorrect decoding atoms true, false into the booleans
  • Fixed race condition and freeze of connection serving in corner case #21
  • Fixed problem with monitoring process by the registered name (local and remote)
  • Fixed issue with termination linked processes
  • Fixed platform-dependent issues. Now Ergo Framework has tested and confirmed support of Linux, MacOS, Windows.

1.1.0 - 2020-04-23

  • Fragmentation support (which was introduced in Erlang/OTP 22)
  • Completely rewritten network subsystem (DIST/ETF).
  • Improved performance in terms of network messaging (outperforms original Erlang/OTP up to x5 times. See Benchmarks)

1.0.0 - 2020-03-03

There is a bunch of changes we deliver with this release

  • We have changed the name - Ergo (or Ergo Framework). GitHub's repo has been renamed as well. We also created cloned repo ergonode to support users of the old version of this project. So, its still available at https://github.com/halturin/ergonode. But it's strongly recommend to use the new one.
  • Completely reworked (almost from scratch) architecture whole project
  • Implemented linking process feature (in order to support Application/Supervisor behaviors)
  • Reworked Monitor-feature. Now it has full-featured support with remote process/nodes
  • Added multinode support
  • Added experimental observer support
  • Fixed incorrect ETF string encoding
  • Improved ETF TermIntoStruct decoder
  • Improved code structure and readability

0.2.0 - 2019-02-23

  • Now we make versioning releases
  • Improve node creation. Now you can specify the listening port range. See 'Usage' for details
  • Add embedded EPMD. Trying to start internal epmd service on starting ergonode.