Send in your ideas. Deadline June 1, 2024
logo

Last update: 2018-02-01

RaptorJIT

RaptorJIT is a high-performance Lua virtual machine for network dataplanes.

RaptorJIT is a fork of LuaJIT focused on predictably high performance. RaptorJIT takes a quantitive approach to performance. The value of an optimization must be demonstrated with a reproducible benchmark. Optimizations that are not demonstrably beneficial on recent CPU generations are removed. RaptorJIT was initially developed by the team behind Snabb Switch.

In network dataplanes performance needs to be predictable, which brings new requirements:

  • Minimizing the performance impact of non-deterministic JIT decisions.
  • Providing an accurate mental model of how the JIT works and which programming techniques are effective.
  • Providing diagnostic tools (Studio) consistent with this mental model to make the actual operation transparent.
  • Making profiling completely ubiquitous in development, testing, and production environments.

The development process has to support moving quickly in these directions:

  • Quality assurance based on repeatable standard benchmarks executed by CI.
  • Streamlined codebase: x86-64 architecture, 64-bit heap (GC64), "no #ifdef."
  • Distributed development ("Linux-style") with many maintainers, forks, and merges.

Once these requirements have been thoroughly satisfied then new requirements can be introduced. For example, ARM64 and other platforms can be supported as the project matures.