Skip to content

penberg/hornet

Repository files navigation

Hornet

Build Status

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.

About

Hornet, a JVM optimized for low-latency applications.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages