aboutsummaryrefslogtreecommitdiffhomepage
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md27
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) をご覧ください。