diff options
| author | nsfisis <nsfisis@gmail.com> | 2024-03-10 20:14:46 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2024-03-10 20:14:46 +0900 |
| commit | 3e6e98518eeace97fc6c12b513afec3646fb9105 (patch) | |
| tree | f916f07eb4a0918cf147369214698415b47a5518 /README.md | |
| parent | f0a2d9ceaedf11d05452200662ecc9430dc055f1 (diff) | |
| download | phperkaigi-2024-albatross-3e6e98518eeace97fc6c12b513afec3646fb9105.tar.gz phperkaigi-2024-albatross-3e6e98518eeace97fc6c12b513afec3646fb9105.tar.zst phperkaigi-2024-albatross-3e6e98518eeace97fc6c12b513afec3646fb9105.zip | |
add readme and license
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..9ed9069 --- /dev/null +++ b/README.md @@ -0,0 +1,27 @@ +# Albatross.PHP + + +## これは何? + +2024-03-07 から 2024-03-09 にかけて開催された [PHPerKaigi 2024](https://phperkaigi.jp/2024/) の中のコードゴルフ企画にて使用されたシステムのソースコードです。 + +現在は回答を締め切っていますが、ゴルフの問題や開催中の参加者の方々の回答は、以下のページから閲覧できます。 + +https://t.nil.ninja/phperkaigi/2024/golf/ + + +## おおまかな動作の仕組み + +本システムは、以下二つのコンポーネントからなります。 + +* [services/app/](./services/app/): [Slim Framework](https://www.slimframework.com/) で書かれたアプリケーションサーバ +* [services/sandbox-exec/](./services/sandbox-exec/): WebAssembly を使ったサンドボックス実行環境 + +コードゴルフの回答が期待する動作をしているかどうか検証するには、入力されたコードを実際に実行してみる必要があります。任意のコードを自由に実行させてしまうと、深刻な脆弱性に繋がってしまいます。 + +このシステムでは、環境の隔離に WebAssembly を用いています。具体的には、PHP の処理系を [Emscripten](https://emscripten.org/) を用いて WebAssembly に変換し、その上で入力された PHP コードを動かしています。PHP 処理系を WebAssembly へとコンパイルする部分については、[以前にブログ記事にまとめていますので、そちらをご参照ください](https://blog.nsfisis.dev/posts/2023-10-02/compile-php-runtime-to-wasm/)。 + + +## ライセンス + +このリポジトリ中のファイルには、[services/app/assets/favicon.svg](./services/app/assets/favicon.svg) を除いて、The MIT License が適用されます。ライセンス表記については [LICENSE](./LICENSE) をご覧ください。 |
