Inspirel banner

YAMI4 1.11.0 - new features and changes

This article is a short description of the new features and changes introduced in the YAMI4 1.11.0 release.

Updated code base

YAMI4 was introduced about 10 years ago. This means that the code base became a mature product by now. On one hand this is an important added value for users looking for stability and quality, but on the other hand the code started to lag behind the natural evolution of language standards and associated compiler technology. This was of particular importance with regard to the std::auto_ptr class from the C++ standard library, which was officially deprecated and which was actively discouraged from use by means of warnings reported from newest compilers.

In order to accommodate this language evolution, YAMI4 code base was updated to stay in line with the C++11 recommendations.

Support for native QNX messaging

One of the most important new features is support for QNX. Even though QNX is a POSIX-like system and it was possible to compile YAMI4 on it without problems, it was not satisfactory for QNX users. The reason for this is that QNX is famous for its native IPC messaging, which is a communication service implemented as a basic functionality of the QNX microkernel. One of the advantages of this service is its spectacular performance, due to its direct nature.

YAMI4 1.11.0 supports QNX IPC messaging as an additional (with regard to naturally supported TCP, UDP, UNIX sockets and files) protocol, addressed using the new, but familiar "qnx://aaa.bbb.ccc" convention. This makes the protocol choice transparent for the application code (the communication patterns are the same as with other protocols), while still allowing the programs to benefit from the performance boost where it is available.

General performance improvements

Performance of stream-oriented protocols was improved by means of additional buffering of incoming data.

Improved configurability of services

Existing services can benefit from new configuration options and the broker service in particular supports flexible subscription redirection feature.

Retiring of least used components

The evolution of YAMI4 is driven by its users and this relates both to introduction of new features, as well as cleaning up the least needed ones. In this spirit, the libraries and bindings for Ada, Java, .NET and Python 2.x were left frozen in the previous package (1.10.2), which is kept available for download for those users who still find these components useful.

See the video announcement and a short description of these changes:

New gateway service

A new gateway service was introduced as a stand-alone process that accepts commands on its standard input, reports results on its standard output and performs communication activities with other YAMI4 programs according to these commands.

The gateway service can be useful as a simple diagnostic console on those systems where a full-blown Python interpreter is not available, and can also help creating ad-hoc bindings for those languages and environments where direct linking to core libraries is not convenient (like in shell scripts).

See the video presentation of the new gateway service:

Support for Wolfram and Mathematica

Last but certainly not least, the YAMI4 1.11.0 release introduces support for the Wolfram language and as such can be used from Mathematica notebooks. Full range of messaging patterns, both for clients and servers, is supported and complete example Mathematica notebooks are included in the distribution package.

See the video presentation of the Wolfram and Mathematica support in YAMI4:

Go to the YAMI4 homepage.