Skip to content

Bump drasyl-core from 0.3.0 to 0.4.0

bornholdt requested to merge dependabot/maven/org.drasyl-drasyl-core-0.4.0 into master

Bumps drasyl-core from 0.3.0 to 0.4.0.

Release notes

Sourced from drasyl-core's releases.

v0.4.0

CHANGELOG.md

Changelog

Sourced from drasyl-core's changelog.

[0.4.0] - 2020-xx-xx

Added

  • Hole Punching is now used to traverse NATs. This should dramatically increase the proportion of direct connections between peers.
  • Messages that are too large for a single UDP datagram are now automatically split into multiple datagrams (and re-assembled on the receiving side).
  • When changing the network, new port mappings are now automatically created on the new network.
  • DrasylNode's API has been enhanced with @NotNull and @Nullable annotations.
  • Messages that can be delivered within the same JVM are now passed by reference (previously these messages have been unnecessarily serialized). So make sure you either send copies of your objects or it's fine for other nodes to make changes to that object.
  • Static routes to other remote peers can now be defined. This allows discovery to be omitted in static environments (or test setups).
  • Messages with content null are now possible.
  • perf command has been added to the CLI. This allows you to run performance tests of connections.
  • Each node can now have several super peers simultaneously. The fastest super peer will automatically be used. If one or more super peers fail (temporarily), one of the remaining super peers will automatically be used. By default, each node will use two of our super peers.
  • New examples have been added: https://github.com/drasyl-overlay/drasyl/tree/master/drasyl-examples/src/main/java/org/drasyl/example
  • Nodes can now be implemented as finite state machines (see our example of the philosopher problem: https://github.com/drasyl-overlay/drasyl/tree/master/drasyl-examples/src/main/java/org/drasyl/example/diningphilosophers).

Changed

  • By default, each node now listens on a port in the range 22528 and 65528, which is derived from its identity. This means that the chance for a port collision is now reduced when multiple nodes are running on one computer.
  • UDP is now used instead of TCP for communication with remote peers.
  • The entire protocol for constructing the overlay network has been revised (it's far better now!).
  • Messages are now serialized in binary. This is faster and creates smaller messages on the wire.
  • If possible, messages are processed using zero-copy.
  • Documentation has been revised (Javadoc and/or documentation at https://docs.drasyl.org).
  • Messages can now be additionally serialized by protobuf or Java. Furthermore, own serializers can be implemented. Read more at https://docs.drasyl.org.
  • The third-party portmapper library has been replaced with our own more lightweight and more resilient implementation.
  • All dependencies have been updated to the latest versions.

Fixed

  • IntraVmDiscovery: Other nodes running within the same JVM that belongs to a different overlay network are now ignored.
  • LocalHostDiscovery: Other nodes running on the same local computer that belong to a different overlay network are now ignored.
  • Content of received messages is now better verified before it is deserialized.
  • Unchecked exceptions thrown by DrasylNode.onEvent no longer produce ridiculously long error

... (truncated)

Commits
  • f8bc798 [maven-release-plugin] prepare release v0.4.0
  • c5047e0 more docs for 0.4.0
  • 422490d docs for 0.4.0
  • a5dc0e0 Merge branch 'changelog' into 'master'
  • ba4c862 Prepare changelog for release 0.4.0
  • 019d111 Update LocalHostDiscovery.java
  • df17c70 drasyl-all package added
  • 2984a7a Remove auto-generated Protocol.java from git
  • bfc29e0
  • c19e5da disable git shallow clone for SonarQube
  • Additional commits viewable in compare view

Merge request reports

Loading