HHVM Support in PHP Projects

About this page

This website tries to visualize the current state of the HHVM support in PHP libraries and frameworks.
The aim is to provide a resource to check which libraries support HHVM.

To provide this information, we list all available packages from packagist.org and try to fetch the .travis.yml file from github for all listed versions. The result of this can be as followed:

For every version of a package, this information was fetched and stored in a database. For the "dev" versions, the information will be updated if a newer commit reference is found.

The progress bar on the frontpage shows a package as green, when at least one version/branch supports HHVM. It shows orange, if the package supports HHVM at least as a allowed failure. Any package that is red, does not test against HHVM at all.

Projects that do not have a .travis.yml file, or that are not configured as "language: php", will be ignored.

This site should not be used to provide some sort of pressure on packages not supporting HHVM. If you want to have HHVM support in a package, talk to the maintainers or try to provide it yourself, it ain't that hard!

HHVM Badges

This website is providing the cool badges you know from other services like Travis-CI or Scrutinizer. Getting the badge for a package is quite easy, just decide which style and format you want.

Formats:

Styles:

Select your style and build your URL like this:


        VENDOR = h4cc
        PACKAGE = stack-psr7-bridge

        // Using SVG (recommended)
        http://hhvm.h4cc.de/badge/VENDOR/PACKAGE.svg
        http://hhvm.h4cc.de/badge/VENDOR/PACKAGE.svg?style=flat
        http://hhvm.h4cc.de/badge/VENDOR/PACKAGE.svg?style=flat-square

        // Using PNG
        http://hhvm.h4cc.de/badge/VENDOR/PACKAGE.png
        http://hhvm.h4cc.de/badge/VENDOR/PACKAGE.png?style=flat
        http://hhvm.h4cc.de/badge/VENDOR/PACKAGE.png?style=flat-square
        
Have fun! :)

API for HHVM status

There is a JSON API to fetch the latest HHVM status for a package:
Request: GET http://hhvm.h4cc.de/package/sonata-project/admin-bundle.json
Example Response:

{
    "name": "sonata-project/admin-bundle",
    "description": "Symfony SonataAdminBundle",
    "versions": {
        "dev-acl": {
            "version": "dev-acl",
            "reference": "b61fa86ecb7807afec68439d40c708fee8e104d6",
            "type": "symfony-bundle",
            "hhvm_status_string": "tested",
            "hhvm_status": 3
        },
        "9999999-dev": {
            "version": "9999999-dev",
            "reference": "2b0648889eab75aeb0c2f1a1e264ec5bf0be56b8",
            "type": "symfony-bundle",
            "hhvm_status_string": "partial_tested",
            "hhvm_status": 2
        },
        "2.1.9999999.9999999-dev": {
            "version": "2.1.9999999.9999999-dev",
            "reference": "1a1f173e0136723bad62680cb8c6c5645e4cae0a",
            "type": "symfony-bundle",
            "hhvm_status_string": "not_tested",
            "hhvm_status": 1
        },
        "2.1.0.0": {
            "version": "2.1.0.0",
            "reference": "c611614f23d5d42257747ae81bcc36df86216bae",
            "type": "symfony-bundle",
            "hhvm_status_string": "not_tested",
            "hhvm_status": 1
        }
    }
}

There is also a simple script to process your composer.lock file locally using the above API: hhvm_status.php