Jump to content

Javolution

From Alfawiki
Javolution
Company typeOpen-source software
IndustrySoftware development
FounderJean-Marie Dautelle
ProductsReal-time library for Java, Java-like, and C++ applications; Perfometer tool; XML marshalling/unmarshalling tools; OSGi bundle

Javolution

Javolution is a real-time library created to improve both performance and timing predictability in Java, Java-like, and C++ applications, specifically addressing the shortcomings of conventional libraries in safety-critical environments. Initiated by Jean-Marie Dautelle, this open-source solution supports native applications alongside Java platforms.

Notable capabilities include:

  • Collections optimized for high performance, featuring customizable views, iteration through closures, map-reduce operations, and support for parallel processing.
  • Worst-case execution time explicitly documented using Realtime Java annotations.
  • Fractal data structures that maintain stable performance irrespective of the data volume.
  • OSGi context integration allowing dynamic control over concurrency, logging, and security without complicating application logic.
  • Parallel algorithm support with concurrent and compute contexts designed for GPU acceleration.
  • Base classes for Structs and Unions facilitating smooth interaction with native code.
  • The Perfometer tool enabling accurate measurement of worst-case execution durations.
  • XML marshalling and unmarshalling capabilities that serialize and deserialize data directly without intermediate objects.
  • XML readers and writers modeled after StAX but optimized to minimize object creation, enhancing speed beyond traditional StAX implementations.
  • Comprehensive configuration management that streamlines application setup.

Starting with version 6.0, Javolution offers straightforward Java source code portability to C++ for cross-platform native builds. The C++ core package also includes adapted versions of the OSGi and JUnit frameworks.

Both Java and native components are compiled using Apache Maven. Javolution can be deployed as an OSGi bundle—which is the preferred method—or as a standalone library.