hornet

Hornet, a JVM optimized for low-latency applications.

OTHER License

Stars
54

Hornet

Hornet is an implementation of the Java virtual machine with emphasis on predictable execution for applications that have low-latency requirements. Planned features include pauseless garbage collection, ahead-of-time compilation, off-heap memory management, FFI, object layout control, and observability APIs for analyzing and optimizing low-latency applications.

Features

Hornet is in pre-alpha state so the features are still very much work-in-progress.

  • MPS based incremental GC with very
    low pause times.
  • Execution engines:
    • Fast interpreter
    • Baseline DynASM-based compiler
    • Optimizing LLVM-based compiler
  • OpenJDK classlib
  • Supports Linux and Darwin
  • Written in C++11

Design

  • Launcher is the java-like front-end.
  • Translator is a bytecode translator that is shared by
    the fast interpreter and both compilers.
  • Fast interpreter is a portable interpreter that
    translates bytecode into an internal format that is faster to interpret.
  • Baseline compiler is based on Dynasm framework that is used
    by LuaJIT, for example.
  • Optimizing compiler is based on LLVM.
  • GC is based on MPS.

Installation

Prerequisites:

Fedora

$ yum install java-1.7.0-openjdk-devel

If you want to enable the DynASM backend, install LuaJIT:

$ yum install luajit

If you want to enable the LLVM backend, install the library:

$ yum install llvm-dev

OS X

export JAVA_HOME=$(/usr/libexec/java_home)

Build and install Hornet:

$ make install

The command installs an executable hornet to $HOME/bin.

Usage

Hornet works like java:

$ hornet
usage: hornet [-options] class [args...]

License

Hornet is:

Copyright © 2013-2014 Pekka Enberg and contributors

Hornet is distributed under the 2-clause BSD license.

Memory Pool System is:

Copyright © 2001–2013 Ravenbrook Limited. All rights reserved.

MPS is distributed under the Sleepycat License.

Badges
Extracted from project README
Build Status