{"id":46893579,"url":"https://github.com/true-async/releases","last_synced_at":"2026-05-19T22:01:39.432Z","repository":{"id":338666798,"uuid":"1158667944","full_name":"true-async/releases","owner":"true-async","description":"TrueAsync PHP — pre-built binaries and installer","archived":false,"fork":false,"pushed_at":"2026-05-11T09:09:48.000Z","size":187,"stargazers_count":9,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-05-11T11:15:06.989Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/true-async.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-15T18:29:32.000Z","updated_at":"2026-05-11T09:10:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/true-async/releases","commit_stats":null,"previous_names":["true-async/releases"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/true-async/releases","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/true-async%2Freleases","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/true-async%2Freleases/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/true-async%2Freleases/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/true-async%2Freleases/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/true-async","download_url":"https://codeload.github.com/true-async/releases/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/true-async%2Freleases/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33234970,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-19T15:49:41.270Z","status":"ssl_error","status_checked_at":"2026-05-19T15:49:22.917Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-03-10T23:19:54.909Z","updated_at":"2026-05-19T22:01:39.425Z","avatar_url":"https://github.com/true-async.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TrueAsync PHP\n\nPre-built PHP binaries and Docker images with native async/coroutine support via the TrueAsync extension.\n\n## Quick Start\n\n### Docker (Linux)\n\n```bash\ndocker pull trueasync/php-true-async:8.6\ndocker run --rm trueasync/php-true-async:8.6 php -v\n```\n\nEach image includes both `php` (CLI) and `php-fpm`.\n\nAvailable tags:\n\n| Tag                  | Base         | Description                                    |\n|----------------------|--------------|------------------------------------------------|\n| `8.6`                | Ubuntu 24.04 | Full image with cli + fpm                      |\n| `8.6-alpine`         | Alpine 3.20  | Lightweight image with cli + fpm               |\n| `8.6-frankenphp`     | Ubuntu 24.04 | FrankenPHP — Caddy + async PHP worker          |\n| `latest`             | Ubuntu 24.04 | Alias for `8.6`                                |\n| `latest-frankenphp`  | Ubuntu 24.04 | Alias for `8.6-frankenphp`                     |\n\n### FrankenPHP (async worker mode)\n\n[FrankenPHP](https://github.com/true-async/frankenphp) is a Go-based PHP app server built on top of Caddy. The TrueAsync variant runs PHP as a persistent async worker — one PHP script stays loaded and handles requests as coroutines via the TrueAsync event loop.\n\n```bash\ndocker pull trueasync/php-true-async:latest-frankenphp\ndocker run --rm -p 8080:8080 trueasync/php-true-async:latest-frankenphp\n```\n\nThen open http://localhost:8080 — the bundled demo page shows live runtime stats (PHP version, active coroutines, memory).\n\nTo use your own entrypoint:\n\n```bash\ndocker run --rm -p 8080:8080 \\\n  -v ./my-app:/app \\\n  -v ./Caddyfile:/etc/caddy/Caddyfile \\\n  trueasync/php-true-async:latest-frankenphp\n```\n\nExample Caddyfile with async worker:\n\n```\n{\n    admin off\n    frankenphp {}\n}\n\n:8080 {\n    root * /app\n    php_server {\n        index off\n        file_server off\n        worker {\n            file /app/entrypoint.php\n            num 1\n            async\n            buffer_size 20\n            match /*\n        }\n    }\n}\n```\n\nExample `entrypoint.php`:\n\n```php\n\u003c?php\nuse FrankenPHP\\HttpServer;\nuse FrankenPHP\\Request;\nuse FrankenPHP\\Response;\n\nset_time_limit(0);\n\nHttpServer::onRequest(function (Request $request, Response $response): void {\n    $response-\u003esetStatus(200);\n    $response-\u003esetHeader('Content-Type', 'text/plain');\n    $response-\u003ewrite('Hello from TrueAsync!');\n    $response-\u003eend();\n});\n```\n\n### Build from Source (Linux)\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/true-async/releases/master/installer/build-linux.sh | bash\n```\n\nAn interactive wizard will guide you through the build configuration: extensions, FrankenPHP, debug mode, install path, and PATH setup.\n\nFor non-interactive use (CI/scripts):\n\n```bash\n# Standard build\ncurl -fsSL https://raw.githubusercontent.com/true-async/releases/master/installer/build-linux.sh | \\\n  NO_INTERACTIVE=true EXTENSIONS=all SET_DEFAULT=true bash\n\n# With FrankenPHP\ncurl -fsSL https://raw.githubusercontent.com/true-async/releases/master/installer/build-linux.sh | \\\n  NO_INTERACTIVE=true EXTENSIONS=all BUILD_FRANKENPHP=true SET_DEFAULT=true bash\n```\n\nSupported distros: Ubuntu, Debian (apt-based).\n\n### Build from Source (macOS)\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/true-async/releases/master/installer/build-macos.sh | bash\n```\n\nRequires [Homebrew](https://brew.sh). Supports both Apple Silicon (ARM) and Intel Macs.\n\nFor non-interactive use:\n\n```bash\n# Standard build\ncurl -fsSL https://raw.githubusercontent.com/true-async/releases/master/installer/build-macos.sh | \\\n  NO_INTERACTIVE=true EXTENSIONS=all SET_DEFAULT=true bash\n\n# With FrankenPHP\ncurl -fsSL https://raw.githubusercontent.com/true-async/releases/master/installer/build-macos.sh | \\\n  NO_INTERACTIVE=true EXTENSIONS=all BUILD_FRANKENPHP=true SET_DEFAULT=true bash\n```\n\n### Windows\n\n**Quick install (PowerShell):**\n```powershell\nirm https://raw.githubusercontent.com/true-async/releases/master/installer/install.ps1 | iex\n```\n\n**Manual install:**\n1. Go to [Releases](https://github.com/true-async/releases/releases)\n2. Download the archive:\n   - **Release** — for general use\n   - **Debug** — for PHP/extension development (includes debug symbols and assertions)\n3. Verify the SHA256 checksum from `sha256sums.txt`\n4. Extract to your preferred location\n5. Add the directory to your PATH\n\n## Build Options\n\nThe build-from-source scripts (`build-linux.sh`, `build-macos.sh`) support these options:\n\n| Option                | Env Variable             | Default                | Description                                          |\n|-----------------------|--------------------------|------------------------|------------------------------------------------------|\n| `--prefix DIR`        | `INSTALL_DIR`            | `$HOME/.php-trueasync` | Installation directory                               |\n| `--set-default`       | `SET_DEFAULT=true`       | `false`                | Add to PATH as default php                           |\n| `--debug`             | `DEBUG_BUILD=true`       | `false`                | Build with debug symbols                             |\n| `--extensions PRESET` | `EXTENSIONS`             | `standard`             | Extension preset: `standard`, `xdebug`, `all` (see below) |\n| `--no-xdebug`         | `NO_XDEBUG=true`         | `false`                | Exclude Xdebug from build                            |\n| `--frankenphp`        | `BUILD_FRANKENPHP=true`  | `false`                | Build FrankenPHP binary (Caddy-based async server)   |\n| `--no-latest-curl`    | `BUILD_LATEST_CURL=false`| `true`                 | Skip building libcurl 8.12.0 (async uploads fallback)|\n| `--jobs N`            | `BUILD_JOBS`             | auto                   | Parallel make jobs                                   |\n| `--branch NAME`       | `PHP_BRANCH`             | from config            | Override php-src branch                              |\n| `--no-interactive`    | `NO_INTERACTIVE=true`    | `false`                | Skip interactive wizard                              |\n\n**Extension presets** (`--extensions`):\n\n| Preset     | Xdebug | Description                        |\n|------------|--------|------------------------------------|\n| `standard` | No     | async + core PHP extensions        |\n| `xdebug`   | Yes    | standard + Xdebug debugger         |\n| `all`       | Yes    | everything (same as `xdebug`)      |\n\nFrankenPHP is opt-in via `--frankenphp` / `BUILD_FRANKENPHP=true` regardless of the preset. Requires Go 1.26+ (installed automatically if not found).\n\nBy default, the installer builds **libcurl 8.12.0** from source. This is required for fully async file uploads — libcurl \u003e= 8.11.1 fixes PAUSE/unpause bugs ([curl#15627](https://github.com/curl/curl/pull/15627)) that caused intermittent timeouts. Use `--no-latest-curl` to skip this and use the system libcurl (async uploads will fall back to synchronous reads).\n\nTrueAsync PHP is **not** added to PATH by default to avoid conflicts with your system PHP. Use `--set-default` to make it the default `php`.\n\n## Management\n\nAfter installation, use the `php-trueasync` command:\n\n```bash\nphp-trueasync rebuild     # Rebuild from latest source\nphp-trueasync version     # Show installed version\nphp-trueasync uninstall   # Remove TrueAsync PHP\n```\n\n## Verify Installation\n\n```bash\nphp -v\nphp -m | grep async\n```\n\n## What's Included\n\n| Extension  | Description                                   |\n|------------|-----------------------------------------------|\n| **async**  | TrueAsync coroutine engine with libuv reactor |\n| **xdebug** | Debugger and profiler (optional)              |\n\nStandard PHP extensions: curl, mbstring, openssl, pdo, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, sockets, and more.\n\n## Platforms\n\n| Platform  | Method             | Variants                  | Status  |\n|-----------|--------------------|---------------------------|---------|\n| Linux     | Docker             | Ubuntu 24.04, Alpine 3.20, FrankenPHP | ✅       |\n| Linux     | Build from source  | Ubuntu/Debian (apt)       | ✅       |\n| macOS     | Build from source  | ARM + Intel (Homebrew)    | ✅       |\n| Windows   | Pre-built binaries | Release, Debug (x64)      | ✅       |\n\n## Configuration\n\nBuild parameters are defined in [`build-config.json`](build-config.json):\n- PHP source repository and branch\n- Extensions to include\n- Configure flags per platform\n\n## Links\n\n- [Docker Hub](https://hub.docker.com/r/trueasync/php-true-async) — Docker images\n- [TrueAsync PHP Source](https://github.com/true-async/php-src) — PHP fork with async API\n- [TrueAsync Extension](https://github.com/true-async/async) — libuv-based async implementation\n- [TrueAsync Xdebug](https://github.com/true-async/xdebug) — Xdebug with async support\n- [TrueAsync FrankenPHP](https://github.com/true-async/frankenphp) — FrankenPHP fork with async worker support\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrue-async%2Freleases","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrue-async%2Freleases","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrue-async%2Freleases/lists"}