HHVM (aka the HipHop Virtual Machine) is an open-source virtual machine designed for executing programs written in Hack and PHP. HHVM uses a just-in-time compilation approach to achieve superior performance while maintaining the flexibility that PHP developers are accustomed to. To date, HHVM (and its predecessor HPHPc before it) has realized over a 9x increase in web request throughput and over a 5x reduction in memory consumption for Facebook compared with the PHP 5.2 engine + APC.
HHVM should be used together with a FastCGI-based webserver like nginx or apache.
- HHVM page: http://hhvm.com
- Hack page: http://hacklang.org
FAQ
Our FAQ has answers to many common questions about HHVM, from general questions to questions geared towards those that want to use or contribute to HHVM.
Installing
You can install a prebuilt package or compile from source.
Running
You can run standalone programs just by passing them to hhvm: hhvm my_script.php
.
If you want to host a website:
- Install your favorite webserver
- Install our package
- Start your webserver
- Run
sudo /etc/init.d/hhvm start
- Visit your site at http://.../index.php
Contributing
We'd love to have your help in making HHVM better.
Before changes can be accepted a Contributor License Agreement (pdf - print, sign, scan, link) must be signed.
If you run into problems, please open an issue, or better yet, fork us and send a pull request. Join us on #hhvm on freenode.
If you want to help but don't know where to start, try fixing some of the PHP5 tests that don't pass. You can run them with hphp/test/run. When they work, move them to zend/good and send a pull request.
All the open issues tagged php5 incompatibility are real issues reported by the community in existing PHP code and frameworks that could use some attention. Please add appropriate test cases as you make changes; see here for more information. Travis-CI is integrated with this GitHub project and will provide test results automatically on all pulls.
License
HHVM is licensed under the PHP and Zend licenses except as otherwise noted.
Reporting Crashes
See Reporting Crashes for helpful tips on how to report crashes in an actionable manner.