explaingit

facebook/hhvm

Analysis updated 2026-06-21

18,626C++Audience · developerComplexity · 4/5LicenseSetup · hard

TLDR

HHVM is Meta's open-source runtime engine for the Hack programming language, using just-in-time compilation to run Hack web applications faster alongside web servers like nginx or Apache.

Mindmap

mindmap
  root((repo))
    What it does
      Run Hack programs
      JIT compilation
      Web server backend
    Tech stack
      C++
      Hack language
      FastCGI
      nginx or Apache
    Deployment
      Prebuilt packages
      Compile from source
      Proxygen built-in server
    Audience
      Backend developers
      Hack language users
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Run Hack-language web applications on a production server using HHVM as the runtime

USE CASE 2

Integrate HHVM with nginx or Apache via FastCGI to serve web requests

USE CASE 3

Run standalone Hack scripts from the command line using HHVM

USE CASE 4

Build and compile HHVM from source to run Hack programs on a custom server environment

What is it built with?

C++HackPHPFastCGInginx

How does it compare?

facebook/hhvmtencent/mmkvid-software/doom
Stars18,62618,57818,696
LanguageC++C++C++
Setup difficultyhardeasyhard
Complexity4/52/55/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires compiling from source or installing platform-specific prebuilt packages, Hack toolchain not widely familiar outside Meta ecosystem.

PHP and Zend licenses for the runtime (permissive, similar to BSD), MIT license for the Hack typechecker and standard library, use freely including commercially.

In plain English

HHVM is an open-source virtual machine, a runtime environment, for executing programs written in Hack, a programming language developed by Meta (Facebook). A virtual machine in this context is the software layer that reads and runs code, similar to how the Java runtime executes Java programs. HHVM uses just-in-time compilation, which means it translates Hack code into machine code at runtime rather than ahead of time, aiming for better performance while keeping the development experience flexible. Hack is a statically-typed language designed for web development. HHVM is designed to run alongside a web server: it includes a built-in server called Proxygen, or can work with nginx or Apache via the FastCGI interface. Standalone Hack scripts can also be run directly from the command line. HHVM can be installed from prebuilt packages or compiled from source. It is licensed under the PHP and Zend licenses, with the Hack typechecker and standard library under the MIT license.

Copy-paste prompts

Prompt 1
How do I install HHVM from prebuilt packages on Ubuntu and run a basic Hack script from the command line?
Prompt 2
Set up HHVM with nginx using FastCGI to serve a Hack web application, show me the nginx config and HHVM startup steps.
Prompt 3
What is the difference between running HHVM with its built-in Proxygen server versus using it as a FastCGI backend behind nginx?
Prompt 4
How do I compile HHVM from source on Linux and verify the build works with a simple Hack hello-world program?

Frequently asked questions

What is hhvm?

HHVM is Meta's open-source runtime engine for the Hack programming language, using just-in-time compilation to run Hack web applications faster alongside web servers like nginx or Apache.

What language is hhvm written in?

Mainly C++. The stack also includes C++, Hack, PHP.

What license does hhvm use?

PHP and Zend licenses for the runtime (permissive, similar to BSD), MIT license for the Hack typechecker and standard library, use freely including commercially.

How hard is hhvm to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is hhvm for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub facebook on gitmyhub

Verify against the repo before relying on details.