This software offers a lightweight option to Java for programming needs.
Efficiency is a key feature of Avian, as it boasts a range of impressive capabilities. The VM is implemented from scratch and is both fast and small. It includes Just-In-Time (JIT) compilation for quick method execution, as well as generational, copying garbage collection that ensures short pause times and good spatial locality. Thread-local heaps provide O(1) memory allocation with no synchronization overhead, and null pointer dereferences are handled via OS signals to avoid unnecessary branches.
The Avian class library is also designed to be as loosely-coupled as possible, which enables tools like ProGuard to aggressively isolate the minimum code needed for an application. This translates to smaller downloads and faster startup times, which is a big plus.
Another key advantage of Avian is its portability. The platform-specific code is hidden behind a generic interface, making it easy to add support for new operating systems as and when required. Currently, Avian supports Linux (i386 and x86_64), Windows (i386), and OS X (i386), with more platforms likely to be added in the future. The only third-party dependency beyond OS-provided libraries is zlib, which is known for its excellent portability. Even though the VM is written in C++, it is robust in the face of ABI changes, as it does not depend on the C++ standard library.
Finally, Avian is highly embeddable, making it an excellent choice for developers who want to produce a single executable containing their entire application. The VM itself supports class and resource loading from embedded jar files, which simplifies the installation process and ensures that users can quickly get up and running with their new software.
To get started with Avian, you simply need to export your JAVA_HOME environment variable, make the software, and run it using the appropriate command. Overall, Avian is a highly efficient, portable, and versatile alternative to Java that has a lot to offer developers working across a range of different platforms.
Version 0.2: N/A