|  | 
				
					
						|  | Because real-time programming requires a time-predictable standard library. |  |  
				
					
						| 
						"The ability to simplify means to eliminate the unnecessary so that the necessary may speak."Hans Hofmann, Introduction to the Bootstrap, 1993
 |  
				
					
						|  |  |  |  
				
					
						| Javolution real-time goals are simple: To make your application faster and more time predictable! 
							High-Performance - Hardware accelerated computing (GPUs) with ComputeContext.Minimalistic - Collection classes, supporting custom views, closure-based iterations, map-reduce paradigm, parallel computations, etc.Optimized - To reduce the worst case execution time documented through annotations.Innovative - Fractal-based structures to maintain high-performance regardless of the size of the data.Multi-Cores Ready - Most parallelizable classes (including collections) are either mutex-free (atomic) or using extremely short locking time (shared).OSGi Compliant - Run as a bundle or as a standard library. OSGi contexts allow cross cutting concerns (concurrency, logging, security, ...) to be addressed at run-time through OSGi published services without polluting the application code (Separation of Concerns).Interoperable - Struct and Union base classes for direct interfacing with native applications. Development of the Javolution C++ library to mirror its Java counterpart and makes it easy to port any Java application to C++ for native compilation (maven based) or to write Java-Like code directly in C++ (more at Javolution C++ Overview)).Simple - You don't need to know the hundreds of new Java 8 util.* classes, most can be built from scratch by chaining Javolution collections or maps. No need to worry about configuration, immutability or code bloating !Free - Permission to use, copy, modify, and distribute this software is freely granted, provided that copyright notices are preserved (BSD License). |  
				
					
						|  |  |  |  
				
					
						| 
							Javolution classes are simple to use, even simpler than most JDK classes. You don't need to guess the capacity of a TextBuilder, FastTable or a FastMap, their size expand gently without ever incurring expensive resize/copy or rehash operations (unlike StringBuilder,ArrayListorHashMap).Developers may achieve true separation of concerns (e.g. logging, configuration) through Context Programming or by using classes such as Configurable.Javolution classes are fast, very fast (e.g. Text insertion/deletion in O[Log(n)]instead ofO[n]for standardStringBuffer/StringBuilder).All Javolution classes are hard real-time compliant with documented real-time behavior.Javolution makes it easy for concurrent algorithms to take advantage of multi-processors systems.Javolution's real-time collection classes (map, table and set) can be used in place of most standard collection classes and provide numerous additional capabilities.Any Java class can be serialized/deserialized in XML format in any form you may want, also no need to implement Serializable or for the platform to support serializationJavolution provides Struct and Union classes for direct interoperability with C/C++ applications.Javolution is fully integrated with OSGi but still can be used as a standard Java library.Javolution can be either a Pure Java Solution or a Pure Native Solution (C++ mirror), small (less than 400 KBytes jar) and fully produced through maven (Java and C++). |  
				
					
						| The simplest way to use Javolution is through Maven with the following dependency in your POM.xml 
      <dependency>
          <groupId>org.javolution</groupId>
          <artifactId>javolution</artifactId>
          <version>7.0.0</version>
      </dependency>  The Javolution project is currently being migrated to GitHub in the form of three sub-projects (Java, C++ mirror and C++ Test/Benchmark). The C++ mirror library is a static library which can be install/deployed using the Maven Native Plugin (Visual C++ and Linux platform supported). |  
						| The standard Java distribution is an OSGi bundle which can also be used as standalone Java library. The C++ distribution includes a port of standard Java classes, Javolution classes, OSGi and JUnit. Below is the table of correspondance between the Java packages and Javolution C++ namespaces. |  
				
					
						| Java Packages | C++ Namespace | C++ Port Comments/Limitations |  
						| java.lang | java::lang | Includes Thread, Class<T>, Enum<T> etc. |  
						| org.javolution | org::javolution | Holds Javolution classes: FastMap<T>, FastTable<T>, FastSet<T> etc |  
						| org.osgi | org::osgi | OSGi Support. |  
						| junit.framework | junit::framework | JUnit 3.8 port (public domain) |  
				
					
						| Developers may download the cpp-testproject which illustrates the use of OSGi and JUnit in C++. |  
				
					
						| Runtime Environment: Any  (Android, J2SE, Native Windows/Linux) Compilers: All  (including Visual C++, GCC)
 Build tool: Maven
 OpenCL Binding: JavaCL
 Issues Tracking: GitHub Issue
 Style Guide: Coding Standard Addendum.
 Preferred Environment: Eclipse (Import Project from Git, e.g.
 https://github.com/javolution/javolution). |  
 
				
					
						|  |  |  |  
				
					
						| Articles related to Javolution (previously known as: J.A.D.E. Java Addition to Default Environment):
						
						Known projects using Javolution: 
							Known projects having a C++ port of their Java library or specifications based on Javolution:Resoa - Open Source project for SOA & Cloud computingJScience - Java Tools and Libraries for the Advancement of Sciences.Glimworm - I.T. Firefly CMS ProductALMWorks - Bug-tracking systems, Deskzilla and JIRA Client.Open For Business - Open source enterprise automation software project.RADlab - Similator for radiation detection and measurement experiments.jgame - Real-time and embedded gaming API.MathEclipse - A symbolic mathematics engine written in Java.JRoboOp - Java package for robotics simulation with visualization of a 3D robot model.JMulTi - Time Series Analysis with Java.JStatCom - A Software Framework for Data Based Analysis.OVal - Object Validation Framework. 
							(Let us know if your project uses Javolution and you would like it to be listed here)OSGi - Included in Javolution core distributionJUnit - Included in Javolution core distribution 
 Javolution's users can also show their support with the "Powered By Javolution" button:
 
 
  
 (e.g. <a href="http://javolution.org"><img src="http://javolution.org/css/img/javolution.png"></a>);
 this is of course purely optional.
 |  
				
					
						|  |  |  |  
				
					
						| 
							April 1st, 2017: Javolution (Java) 7.0New Fractal collections and Trie-Based maps.
March 19, 2017: Javolution C++ 7.0Our initial benchmark shows a 30x speed improvement for "value-type" objects (immutable such as Double, Integer, Complex numbers).
 We are now on GitHub
December 22nd, 2013: Javolution 6.1Support for GPU accelerated high precisions scientific computing algorithms/applications (ComputeContext). Implementation based on JavaCL (if random crash on Linux, follow this link).
August 18, 2013: Javolution 6.0Includes fractal classes, Java 8 support (collections), real-time annotations, OSGi pluggable contexts, perfometer, mirror C++ library, etc. Most backlog issues have been fixed !
May 6, 2007: Javolution 5.0Deprecated release.
September 18, 2006: Javolution 4.0Classes renamed as per coding standard (e.g. XmlFormat => XMLFormat)
March 3, 2005: Javolution 3.0Introduction to context programming.
October 4, 2004: Javolution 1.0Spin-off of Java Addition to Default Environment [1.0.0]
 |  |  |