Repolode
meta

meta/hhvm

Hackで書かれたプログラムを実行する仮想マシン。JITコンパイルにより高速に動作します。

スター
18,681
フォーク
3,066
未解決の Issue
560
最終コミット
20 時間前

これは何?

HHVMは、PHPスタイルのWeb開発向けに開発された言語Hackで書かれたプログラムを実行する、オープンソースの仮想マシンです。JIT(ジャストインタイム)コンパイル方式を採用し、開発の柔軟性を保ちながら実行を高速化します。

hhvmコマンドにファイルを渡すことで、スタンドアロンのスクリプトを実行できます。Webサイトの場合は、通常Webサーバーと組み合わせて使います。選択肢は、組み込みのProxygenサーバー、またはnginxやApache上でのFastCGI構成です。

このプロジェクトには、ビルド済みパッケージとソースからビルドする手順が用意されています。ライセンスはPHP LicenseおよびZend Licenseで、Hackの型チェッカーとHack Standard LibraryはMITライセンスです。

主な機能

  • 01JITコンパイルを行う仮想マシンでHackプログラムを実行します。
  • 02コマンドラインからスタンドアロンのスクリプトを直接実行できます。
  • 03サイトのホスティングに使えるProxygen Webサーバーを内蔵しています。
  • 04nginxおよびApacheとのFastCGI連携に対応しています。
  • 05ビルド済みパッケージを提供し、ソースからのビルドにも対応しています。

ユースケース

  • HackベースのWebアプリケーションを本番環境で実行する。
  • コマンドラインからスタンドアロンのHackスクリプトを実行する。
  • FastCGIを介してnginxまたはApacheの背後でHackサイトを配信する。

クイックスタート

  1. 1

    公式ドキュメントからビルド済みパッケージをインストールする

  2. 2

    または、ビルドガイドに従ってHHVMをソースからコンパイルする

  3. 3

    Hackのスタンドアロンプログラムを実行する

    hhvm example.hack

使う前に知っておきたいこと

  • READMEにはパッケージマネージャーでインストールするコマンドが記載されていません。ビルド済みパッケージを使うか、ソースからビルドする必要があります。
  • ライセンスは混在しています。HHVM本体にはPHPライセンスとZendライセンスが適用され、Hackの型チェッカーと標準ライブラリにはMITライセンスが適用されます。
  • Hackプログラムを実行するため、Hackを書いている、または書く予定がある場合にのみ役立ちます。

収録されている特集

トピック

よくある質問

hhvm とは?
Hackで書かれたプログラムを実行する仮想マシン。JITコンパイルにより高速に動作します。 HHVMは、PHPスタイルのWeb開発向けに開発された言語Hackで書かれたプログラムを実行する、オープンソースの仮想マシンです。JIT(ジャストインタイム)コンパイル方式を採用し、開発の柔軟性を保ちながら実行を高速化します。
hhvm は無料で使えますか?ライセンスは?
hhvm は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
hhvm は今もメンテナンスされていますか?
活発にメンテナンス中。hhvm の最終コミットは 2026年11月5日 です。
hhvm は何に使えますか?
HackベースのWebアプリケーションを本番環境で実行する。 コマンドラインからスタンドアロンのHackスクリプトを実行する。 FastCGIを介してnginxまたはApacheの背後でHackサイトを配信する。
hhvm のインストール方法は?
公式ドキュメントからビルド済みパッケージをインストールする または、ビルドガイドに従ってHHVMをソースからコンパイルする Hackのスタンドアロンプログラムを実行する: hhvm example.hack
hhvm はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/meta/hhvm

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト

NumPyに対応したオープンソースのJITコンパイラ。LLVMを使って数値計算向けPython関数を高速なマシンコードに変換します。

1.1万+3 今週1351PythonBSD-2-Clause活発にメンテナンス更新 昨日

実行時にx86/x64やAArch64の命令を出力できる、低レイテンシなマシンコード生成向けC++ライブラリ。

開発ツール#jit#machine-code#assembler
4635+5 今週606C++Zlib活発にメンテナンス更新 一昨日

実行中のプログラムに変更した関数だけをJITコンパイルする、差し替え可能なcargoフロントエンド。Rustの増分ビルドを数ミリ秒に短縮します。

2003+269 今週70RustApache-2.0活発にメンテナンス更新 18 時間前