What's Changed
- feat: add a woker mode by @dunglas in #1
- fix: memory leaks and refactor worker code by @dunglas in #2
- test: ensure memory safety when handling parallel requests by @dunglas in #3
- fix: fix thread safety issues by @dunglas in #5
- feat: improve Caddy module by @dunglas in #7
- fix: unwanted calls to WriteHeader() and improve logger by @dunglas in #8
- feat: handle errors in worker mode by @dunglas in #9
- feat: add stub PHP functions by @dunglas in #10
- test: add tests for exception handling by @dunglas in #11
- feat: add support for 103 Early Hints by @dunglas in #12
- feat: add support for 103 Early Hints by @dunglas in #13
- feat: improve default config by @dunglas in #14
- feat: improve Dockerfile and add some docs by @dunglas in #15
- docs: add more docs by @dunglas in #16
- docs: fix mercure link by @Alban-io in #17
- Small typo by @jasonmccallister in #18
- Use proper number of cpus to compile php instead of hardcoded value by @Pierstoval in #21
- [Docs] Minor typos and tweaks by @javiereguiluz in #23
- docs: add license by @dunglas in #24
- docs: improve docs of the Go module by @dunglas in #25
- Allow to add other ini files by @Pierstoval in #27
- Missing backslash for line continuation by @rokiszb in #28
- [Docs] Add a note for TLS with localhost by @Pierstoval in #22
- POC: Enable extensions + staged build by @withinboredom in #33
- fix: signals handling by @dunglas in #39
- APP_RUNTIME as docker environment variable by @Yoann-TYT in #40
- Automatically Run Tests on PR and Push Docker Image by @withinboredom in #38
- fixing small typo by @Yoann-TYT in #44
- Don't require secrets for running tests by @withinboredom in #45
- Fixing docker build bug in main Dockerfile relating to a COPY command by @gahooa in #47
- feat: use mainline PHP 8.2 by @dunglas in #48
- fix: prevent panic when restarting crashed worker by @dunglas in #49
- Alpine image by @back-2-95 in #43
- fix: Docker images by @dunglas in #52
- feat: remove automatic exceptions handling by @dunglas in #53
- fix: memory leak in worker mode by @dunglas in #56
- ci: fix Docker Push by @dunglas in #60
- ci: fix Docker Push (ctd) by @dunglas in #63
- fix: remove some more memory leaks in worker mode by @dunglas in #65
- fix: dev Docker image and various typos by @dunglas in #67
- Push latest when pushing main branch by @withinboredom in #68
- Yet another workflow change :) by @withinboredom in #70
- add PHP_SELF to $_SERVER by @dylanblokhuis in #71
- Use RC5 image by @withinboredom in #74
- Fix CONTRIBUTING.md by @krakjoe in #77
- fix #50 by @krakjoe in #76
- ci: run tests with the race detector by @dunglas in #80
- docs: add WordPress example by @dunglas in #73
- follow on #50 by @krakjoe in #81
- feat: rename
DEBUG
env var toCADDY_DEBUG
by @chalasr in #79 - Finish request early: frankenphp_finish_request by @withinboredom in #69
- Add docs for custom docker image by @alexander-schranz in #75
- update caddy and misc deps by @withinboredom in #84
- doc: Add missing dependency to compile php by @nitneuk in #87
- dependencies: Update the way to get C-Thread-Pool by @nitneuk in #88
- fix typo by @flug in #91
- docs: add Drupal skeleton by @dunglas in #96
- tests: improve TestFinishRequest by @dunglas in #97
- feat: implement flush() by @dunglas in #90
- Handle aborted connection by @withinboredom in #95
- feat: enhance php register variables by @jockos in #94
- feat: expose PHP version by @dunglas in #102
- fix: ensure there is always a free thread for non-worker scripts by @dunglas in #105
- docs: add Sulu tutorial by @dunglas in #108
- feat: upgrade to PHP 8.2RC6 and use the official PHP builds by @dunglas in #106
- [docs] Updated docker-compose configuration in docs by @florentdestremau in #115
- perf: remove an extra call to cgo by @dunglas in #117
- Update base image to RC7 by @withinboredom in #118
- chore: switch back to upstream C-Thread-Pool lib by @dunglas in #119
- fix: panic: http: invalid Read on closed Body by @dunglas in #121
- feat(docker): use the stable version of PHP 8.2 by @dunglas in #123
- fix: set the _GNU_SOURCE macro to allow memrchr usage by @dunglas in #124
- fix: don't flush if the request body hasn't been read entirely by @dunglas in #122
- fix: use SA_ONSTACK in C-Thread-Pool by @dunglas in #127
- ci: fix build and bump deps by @dunglas in #137
- Allow manual builds by @withinboredom in #136
- fix: add the documentation for pkg-config install by @pauljosephkrogulec in #139
- feat: add support for PHP timeouts on Linux by @dunglas in #128
- The configuration to enable ZendMaxExecutionTimers is
--enable-zend-max-execution-timers
by @DracoBlue in #145 - docs: fix Docker image link by @jeremyFreeAgent in #148
- chore(docker): switch back to the official PHP builds by @dunglas in #153
- chore: compile using Go 1.20 by @dunglas in #154
- ci: fix skip flaky tests by @dunglas in #156
- ci: upgrade actions by @dunglas in #158
- chore(docker): upgrade to Debian Bookworm by @dunglas in #159
- test: better debug flags by @dunglas in #160
- ci: compile and run tests using setup-php by @dunglas in #157
- feat: compatibility with PHP 8.3 by @dunglas in #162
- test: fix and refactor some flaky tests by @dunglas in #165
- chore: bump deps by @dunglas in #164
- ci: use Docker Bake to build images by @dunglas in #163
- feat: increase the default number of workers by @dunglas in #166
- feat: add FrankenPHP version to the version command by @dunglas in #167
- fix: ensure SERVER_PORT is always set by @dunglas in #168
- chore: use Caddy 2.7 by @dunglas in #169
- test: Caddy module by @dunglas in #170
- chore: use PHP 8.3 beta 1 by @dunglas in #172
- ci: PHP 8.3 beta 2 Docker images by @dunglas in #173
- docs: improve compilation instructions by @dunglas in #176
- feat: honor GOMAXPROCS and set it automatically in containers by @dunglas in #174
- fix: race condition on shutdown by @dunglas in #175
- feat: upgrade to Caddy 2.7.3 by @dunglas in #178
- fix: don't abort con when streaming not possible by @dunglas in #179
- fix: properly cleanup workersReadyWG by @dunglas in #184
- fix: flush support with Caddy 2.7 by @dunglas in #180
- chore: clean multiple errors handling by @dunglas in #181
- chore: better Zend Max Execution Timers message by @dunglas in #183
- test: add a test for large requests by @dunglas in #185
- ci: set GODEBUG=cgocheck=2 by @dunglas in #186
- fix: large requests with Caddy by @dunglas in #187
- chore: upgrade to Caddy 2.7.4 by @dunglas in #188
- chore: better cgo directives by @dunglas in #189
- perf: reduce the number of calls to cgo to set the headers by @dunglas in #190
- style: minor C style improvements by @dunglas in #191
- php 8.3.0beta3 by @DracoBlue in #194
- minor: fix indent for Caddyfile by @Chris53897 in #193
- chore: upgrade to Go 1.21 by @dunglas in #195
- fix: superfluous response.WriteHeader call by @dunglas in #196
- feat: improve default config by @dunglas in #197
- ci: create a static build of FrankenPHP by @dunglas in #198
- chore: bump deps by @dunglas in #202
- feat: Apple Silicon static build and better version name by @dunglas in #205
- ci: better Go modules cache by @dunglas in #206
- feat: improve Docker images by @dunglas in #208
- feat: add support for 8.3rc1 by @dunglas in #209
- feat: allow passing env vars to workers by @dunglas in #210
- docs: explain how to populate super globals with env vars by @dunglas in #211
- feat: set SAPI version by @dunglas in #212
- fix: ensure that SERVER_PORT is always defined by @dunglas in #214
- chore: minor Dockerfile improvements by @dunglas in #215
- feat: upgrade to PHP 8.3RC2 by @dunglas in #216
- upgrade go version + add alpine dockerfile by @clementtalleu in #217
- ci: release infrastructure by @dunglas in #213
- fix typo in config.md by @pyjac in #221
- fix(docker): increase thread stack size on Alpine by @dunglas in #223
- ci: fix release workflow name by @dunglas in #224
- docs: explain php.ini configuration in docker by @virp in #225
- fix(caddy): ModuleInfo.New() warning by @dunglas in #228
- docs: update skeleton list [skip ci] by @dunglas in #230
- test: prove that Fibers work if not calling Go by @dunglas in #229
- feat(caddy): php_server simplified directive by @dunglas in #235
- docs: ext-imap isn't supported by @dunglas in #232
- docs: Laravel example by @dunglas in #231
- chore: better env vars in default Caddyfile by @dunglas in #237
- add documentation for multiple workers (might change if we get named workers) by @DubbleClick in #240
- feat(caddy): a command to start a PHP server by @dunglas in #238
- add start-group and end-group around php-config libs by @DubbleClick in #241
- test: refactor YAML files by @dunglas in #245
- freat: set thread name to frankenphp by @dunglas in #246
- fix PHP version comparing to work with versions like: 9.0 / 9.1 by @ideal in #250
- Fix highlighting in config docs by @ruudk in #253
- fix: disable automaxprocs logging by @ruudk in #255
- feat: add CLI support by @dunglas in #239
- chore: log maxprocs by @dunglas in #257
- chore: remove C-Thread-Pool/example.c by @dunglas in #259
- feat: upgrade to PHP 8.3RC4 by @alamirault in #265
- chore: bump deps by @dunglas in #263
- docs: add dockerignore issue in lower docker version to CONTRIBUTING.md by @thor-son in #260
- docs: get_browser performance by @mathieudz in #271
- feat: minor improvements to the default Caddyfile by @dunglas in #272
- fix: healthcheck URL by @dunglas in #275
- chore: bump deps by @dunglas in #276
- doc: Update static-php urls by @alamirault in #277
- docs: improve workers docs by @dunglas in #281
- fix: retract RC1 of the Caddy module by @dunglas in #282
- Fix typo in the docs by @jdreesen in #284
- Fix some typos in the docs by @jdreesen in #285
- add ext-ldap and ext-sysvsem to static builder, add PHP_EXTENSION_LIBS to enhance extensions by @DubbleClick in #203
- Chore: remove duplicated code in
populateEnv()
by @KennedyTedesco in #288 - Update docker.md by @travis-south in #291
- perf: read the request body directly in the memory allocated by PHP by @dunglas in #292
- perf: write the response body directly from the memory allocated by PHP by @dunglas in #293
- docs: add custom Caddy modules by @dunglas in #287
- ci: PHP 8.3 RC6 Docker images by @dunglas in #297
- Add Joomla on FrankenPHP Example by @alexandreelise in #295
- chore: add benchmark showing a 2.5 reduction in memory usage since RC2 by @dunglas in #298
- chore: bump deps by @dunglas in #300
- ci: improve static build steps by @dunglas in #305
- ci: run tests by @dunglas in #304
- refactor: faster $_SERVER variables creation by @dunglas in #303
- feat: add support for input filters by @dunglas in #302
- debug by @dunglas in #306
- ci: add Apple Silicon build script by @dunglas in #313
- feat: detect when worker crashes or terminates normally by @dunglas in #315
- docs: don't stop the worker script even if a connection with a client is aborted by @dunglas in #316
- feat: Upgrade to PHP 8.3 by @siketyan in #317
- ci: add generic static build script by @dunglas in #322
- ci: add Super-Linter by @dunglas in #323
- ci: setup Dependabot for GHA by @dunglas in #325
- ci: bump docker/setup-buildx-action from 2 to 3 by @dependabot in #326
- ci: bump docker/login-action from 2 to 3 by @dependabot in #327
- ci: bump docker/setup-qemu-action from 2 to 3 by @dependabot in #328
- remove sqlite3 requirement on darwin, fixes #330 by @shyim in #331
- feat: embed PHP apps into the FrankenPHP binary by @dunglas in #324
- feat: allow running embedded CLI scripts by @dunglas in #332
- feat: use tar to embed apps by @dunglas in #333
- feat: define needed environment variables in static-builder.Dockerfile by @dunglas in #338
- feat(caddy): allow to start workers using the php-server built-in command by @dunglas in #339
- docs: embed by @dunglas in #340
- ci: better tags for static-builder Docker image by @dunglas in #341
- docs: link to the website by @dunglas in #342
- ci(docker): only mark tagged versions as latest by @dunglas in #343
New Contributors
- @Alban-io made their first contribution in #17
- @jasonmccallister made their first contribution in #18
- @Pierstoval made their first contribution in #21
- @javiereguiluz made their first contribution in #23
- @rokiszb made their first contribution in #28
- @withinboredom made their first contribution in #33
- @Yoann-TYT made their first contribution in #40
- @gahooa made their first contribution in #47
- @back-2-95 made their first contribution in #43
- @dylanblokhuis made their first contribution in #71
- @krakjoe made their first contribution in #77
- @chalasr made their first contribution in #79
- @alexander-schranz made their first contribution in #75
- @nitneuk made their first contribution in #87
- @flug made their first contribution in #91
- @jockos made their first contribution in #94
- @florentdestremau made their first contribution in #115
- @pauljosephkrogulec made their first contribution in #139
- @DracoBlue made their first contribution in #145
- @jeremyFreeAgent made their first contribution in #148
- @Chris53897 made their first contribution in #193
- @clementtalleu made their first contribution in #217
- @pyjac made their first contribution in #221
- @virp made their first contribution in #225
- @DubbleClick made their first contribution in #240
- @ideal made their first contribution in #250
- @ruudk made their first contribution in #253
- @alamirault made their first contribution in #265
- @thor-son made their first contribution in #260
- @mathieudz made their first contribution in #271
- @jdreesen made their first contribution in #284
- @KennedyTedesco made their first contribution in #288
- @travis-south made their first contribution in #291
- @alexandreelise made their first contribution in #295
- @siketyan made their first contribution in #317
- @dependabot made their first contribution in #326
- @shyim made their first contribution in #331
Full Changelog: https://github.com/dunglas/frankenphp/commits/v1.0.0