> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Runtimes

> Square Cloud がコードをビルドして実行する仕組み: 言語検出、依存関係の解決、隔離されたコンテナ、そしてすべてのランタイムイメージに同梱されるツール群。

Square Cloud における **ランタイム** とは、アプリケーションが実行される完全に隔離された環境のことです。言語のインタープリターや仮想マシン、リンクするシステムライブラリ、シェル経由で呼び出せるツール群、そしてホスト上の他のすべてのアプリケーションから分離しておくためのセキュリティ境界が含まれます。

その環境をあなたがビルドしたり保守したりすることはありません。ソースコードと小さな [設定ファイル](/ja/getting-started/config-file) を送るだけで、Square Cloud が言語を検出し、依存関係を解決し、隔離されたコンテナをプロビジョニングして実行します。同じパイプラインが、Discord/WhatsApp/Telegram のボット、ウェブサイトや API、バックグラウンドワーカーや長時間稼働のサービスを、同一の高速で堅牢なインフラ上で動かします。

## サポートされている言語

<CardGroup cols={3}>
  <Card title="JavaScript" icon="node-js" href="../articles/getting-started-with-nodejs" />

  <Card title="Python" icon="python" href="../articles/getting-started-with-python" />

  <Card title="Java" icon="java" href="../articles/getting-started-with-java" />

  <Card title="Rust" icon="rust" href="../articles/getting-started-with-rust" />

  <Card title="Elixir" icon="droplet" href="../articles/getting-started-with-elixir" />

  <Card title="PHP" icon="php" href="../articles/getting-started-with-php" />

  <Card title="Go" icon="golang" href="../articles/getting-started-with-go" />

  <Card title="C#" icon="c" href="../articles/getting-started-with-csharp" />

  <Card title="Ruby" icon="gem" href="../articles/getting-started-with-ruby" />
</CardGroup>

<Info>
  上記の言語以外にも、ほとんどのスタックやライブラリがそのまま動作します。ランタイムイメージは寛容に作られており、Linux にインストールできる言語であれば、Square Cloud でも動作する可能性が非常に高いです。
</Info>

## バージョン

すべてのランタイムには 2 つの更新チャネルが用意されており、設定ファイルの `VERSION` フィールドで選択できます:

* **`recommended`** — 大多数のアプリケーション向けに、私たちが堅牢化して本番環境で運用しているバージョンです。特別な理由がない限り、こちらを選択してください。
* **`latest`** — 最新のリリースで、出たばかりの言語機能を必要とするチーム向けです。

デプロイ間で完全な再現性を確保するために、正確なバージョンをピン留めすることもできます。

| Language           | `recommended` | `latest` |
| ------------------ | ------------- | -------- |
| Node.js \[JS & TS] | 24.15.0       | 26.1.0   |
| Python             | 3.13.13       | 3.14.5   |
| Java               | JDK 25        | JDK 25   |
| Elixir             | 1.19.5        | 1.19.5   |
| Rust               | 1.95.0        | 1.95.0   |
| Ruby               | 4.0.4         | 4.0.4    |
| PHP                | 8.5.6         | 8.5.6    |
| Go                 | 1.26.3        | 1.26.3   |
| .NET/C#            | 10.0.8        | 10.0.8   |

<Tip>`recommended` をピン留めすると、予期しない破壊的変更なしに、テスト済みのパッチ更新が自動的に適用されます。`RUNTIME` と `VERSION` フィールドについては [設定ファイル](/ja/getting-started/config-file) のリファレンスを参照してください。</Tip>

## デプロイの仕組み

アップロードから稼働中のプロセスに至るまで、すべてのデプロイは同じ決定論的なパイプラインを通ります:

<Steps>
  <Step title="言語検出" icon="magnifying-glass">
    Square Cloud はアップロードされたファイルを調べ、プロジェクトに既に存在するシグナルからスタックを特定します。Node.js なら `package.json`、Python なら `requirements.txt` や `pyproject.toml`、Go なら `go.mod`、Ruby なら `Gemfile`、といった具合です。`RUNTIME` フィールドで検出を明示的に上書きすることもできます。
  </Step>

  <Step title="依存関係の解決" icon="cube">
    依存関係マニフェストは、ビルド環境内の **サーバー側** でインストールされます。`node_modules`、virtualenv、コンパイル済みの成果物を `.zip` に含めて送る必要はありません。プラットフォームがそれらを解決してインストールするため、アップロードは小さく保たれ、ビルドは再現可能になります。
  </Step>

  <Step title="プロビジョニング" icon="server">
    設定ファイルで宣言された CPU とメモリを持つ、隔離されたコンテナが作成されます。リソースはカーネルレベルで強制されるため、あるアプリケーションが同じホスト上の別のアプリケーションのリソースを枯渇させることは決してありません。
  </Step>

  <Step title="起動" icon="play">
    `MAIN` フィールドはエントリーファイルを指し示し、プラットフォームは正しいインタープリターでそれを起動します。ビルドステップ、静的サーバー、あるいはカスタムコマンドが必要ですか？ `START` を設定すれば、そのまま実行されます。
  </Step>
</Steps>

## すべてのランタイムイメージの中身

各イメージは、共通のセキュリティ監査済みベースの上に階層化されているため、どの言語をデプロイしても環境は一貫しています:

<CardGroup cols={2}>
  <Card title="Node.js 26 + ビルドツール" icon="node-js">
    すべてのイメージには、主要言語と並んで Node.js 26 が同梱されています。JS ベースのビルドツール、アセットパイプライン、ユーティリティは、どのスタックでも常に利用可能です。
  </Card>

  <Card title="ffmpeg と Chromium" icon="film">
    メディア処理 (ffmpeg) とヘッドレスブラウザ (Chromium) がプリインストールされており、追加のセットアップなしにメディアボット、ウェブスクレイピング、PDF やスクリーンショットの生成にすぐ使えます。
  </Card>

  <Card title="デフォルトで非特権" icon="shield-halved">
    アプリケーションは隔離されたコンテナ内で非 root ユーザーとして実行されます。侵害された依存関係も封じ込められたままとなり、ホストへの特権的なアクセスを持ちません。
  </Card>

  <Card title="静的サイト、ランタイム不要" icon="file-code">
    インタープリターが不要ですか？ `RUNTIME=static` を設定すれば、他のアプリケーションと同じ CDN と TLS を備えたプレーンな HTML/CSS/JS サイトを直接配信できます。
  </Card>
</CardGroup>

## 隔離とセキュリティ

すべてのアプリケーションは、カーネルによって強制される CPU とメモリの制限を持つ、完全に隔離されたコンテナであり、共有プロセスではありません。非特権で実行されるということは、アプリケーションがホストや隣接するアプリケーションに到達できないことを意味し、リソースの上限によって、あるプロジェクトのスパイクが別のプロジェクトのパフォーマンスに影響を与えないことが保証されます。これは、Square Cloud が共有クラスタ上で数万ものワークロードを互いに干渉させることなくホストできる、まさにそのモデルです。

## 次のステップ

<CardGroup cols={2}>
  <Card title="設定ファイル" icon="gear" href="/ja/getting-started/config-file">
    ランタイムを制御するフィールド、`MAIN`、`START`、`RUNTIME`、`VERSION`、`MEMORY` をマスターしましょう。
  </Card>

  <Card title="言語ガイド" icon="graduation-cap" href="/ja/articles/getting-started-with-nodejs">
    Node.js、Python、Go、Rust、Java などのステップバイステップのセットアップ。
  </Card>
</CardGroup>
