What's special about it? There's multiple specific behaviour that makes this tools suited for application where others aren't.

 - It does not halt your CPU to read the memory, so it can run on mission critical system such as drone, power converter, etc.   This feature comes with some drawbacks, see further
 - Any static or global variables is automatically discovered. Values on the stack are not accessible.

 -  The firmware is tagged with a unique hash that the server can recognize.  When communication is established between the server and the embedded device, the debugging symbols (or a simplified version of it) is automatically loaded, making it easy to manage.

- Some runtime published values (RPV) can be exposed from within the device without relying on the debugging symbols. These can be read/written even if the server does not recognize the firmware.

- Variables and RPV can be aliased, meaning that the server broadcast a virtual variable with an arbitrary name that when written or read, will affect an internal variable or a RPV.  This can be used to expose the similar features across different firmware where the variable name or location can changes. All items : Variable, RPV or Alias are all exposed with the same API to the clients

- Graph: It is possible to graph the values being read from the device. The device can also trigger a graph acquisition based on an event to catch fast events.

- The server will adapt to the device it talks to. Buffer sizes, maximum bandwidth, accessible memory regions, address sizes are all parameters given by the device during the communication handshake. The server consider them to optimize performances.

The architecture