Skip to content
Hornet, a JVM optimized for low-latency applications.
C C++ Lua Makefile Objective-C CMake Other
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
cmake_modules
dynasm
include/hornet
java
mps
scripts
tests
vm
.gitignore
.travis.yml
CMakeLists.txt
LICENSE
README.md
hornet.cc

README.md

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.

Something went wrong with that request. Please try again.