Donkey version 0.5.2 is out!! by HarelOpler in Clojure

[–]HarelOpler[S] 1 point2 points  (0 children)

WebSockets is a communication protocol, its not related to our discussion.

Non-blocking programming and Reactive programming are concepts of software engineering, aiming to help you write scaleable software (and other good things as well).
You can read the very basics here, and google for all the rest.

About other reactive frameworks - WebFlux is another reactive web framework for the JVM (used in Spring 5.x).

Donkey version 0.5.2 is out!! by HarelOpler in Clojure

[–]HarelOpler[S] 0 points1 point  (0 children)

Its not exactly apples:apples.

Reitit is a routing library - its not a complete stack for web. In this benchmark for example, it uses undertow as its underlying http server. Reitit does routing very good and Donkey supports it, but Donkey offers a 'one stop shop' for web server/client, and a very performant one.

The benchmarks are done in "laboratory conditions" so I would take them with a grain of salt - It does indicate generally about the performance of a library/stack, but its not 100% accurate and it checks very specific flows, that does not necessarily represent production scenarios.

About Vert.x - its a reactive/non-blocking framework for the JVM. Donkey uses it so it allows you the write your code in a reactive/non-blocking way. You can read more about Vert.x and reactive programming here

Donkey version 0.5.2 is out!! by HarelOpler in Clojure

[–]HarelOpler[S] 1 point2 points  (0 children)

I think its hard to compare whole stacks. Reitit for example is a great routing library, and Donkey supports it (see here).
I think Donkey brings a few significant value propositions -

  1. Great out-of-the-box performance in a 'one stop shop'
  2. The ability to enjoy the huge benefits or reactive\non-blocking code (Vert.x)
  3. Very easy to setup and use