Commit Graph

114 Commits

Author SHA1 Message Date
naoki kuroda
3692818d0c perf: optimize cookie handling in request (#459)
Signed-off-by: nnnkkk7 <kurodanaoki0711pana@gmail.com>
2024-01-08 08:14:49 +01:00
Rob Landers
7830aae549 Ensure we don't modify a shared env (#452)
* Ensure we don't modify a shared env

* Update worker.go

Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>

* Update worker.go

Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>

---------

Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
2023-12-31 20:02:11 +01:00
Rob Landers
2055142904 apply just an optimization (#450) 2023-12-30 11:21:21 +01:00
Rob Landers
5bda50cbd7 Fix memory leak (#442)
* do not use caddy context

* ensure all handles are cleaned up

* do not export types

* just panic when double deleting a handle

* set the minimal capacity

* remove micro-opt

* move handle cleanup to just before we return from serveHttp

* ensure we clean up cli scripts

* handle cgi-mode free

* micro-optimization: set initial capacity
2023-12-28 00:16:19 +01:00
Kévin Dunglas
7c5f18fe3f ci: fix changelog generation 2023-12-19 14:20:34 +01:00
Kévin Dunglas
3709c2a50b chore: switch to upstream C-Thread-Pool 2023-12-18 18:50:50 +01:00
Kévin Dunglas
6509cddd2a feat: embed PHP apps into the FrankenPHP binary 2023-12-02 15:40:51 +01:00
Shyim
bb931c99ff remove sqlite3 requirement on darwin, fixes #330 2023-12-02 15:40:37 +01:00
Kévin Dunglas
b4aa8038ff feat: detect when worker crashes or terminates normally (#315) 2023-11-21 23:15:07 +01:00
Kévin Dunglas
aa1d968dcf refactor: faster $_SERVER variables creation 2023-11-16 14:40:52 +01:00
Kévin Dunglas
4d2cd5f715 perf: write the response body directly from the memory allocated by PHP 2023-11-07 08:34:18 +01:00
Kévin Dunglas
a4938102e1 perf: read the request body directly in the memory allocated by PHP 2023-11-07 08:34:04 +01:00
Kévin Dunglas
120006a297 chore: bump deps 2023-10-16 21:53:18 +02:00
Kévin Dunglas
ec35afdc7f chore: remove C-Thread-Pool/example.c (#259) 2023-10-10 15:26:03 +02:00
Kévin Dunglas
c615fe0087 feat: add experimental CLI support (#239)
* feat: add CLI support

* updated

* debug

* fix tests

* Caddy php-cli command

* use thread

* $_SERVER and input streams support

* Update frankenphp.c

Co-authored-by: Francis Lavoie <lavofr@gmail.com>

---------

Co-authored-by: Francis Lavoie <lavofr@gmail.com>
2023-10-09 14:38:15 +02:00
shangyuanchun
52caf17a40 fix: to solve php versions like: 9.0 / 9.1 2023-10-09 09:23:50 +02:00
Kévin Dunglas
e193a374d3 freat: set thread name to frankenphp 2023-10-06 19:15:04 +02:00
Kévin Dunglas
1f3007337d feat: create a static build of FrankenPHP (#198)
* ci: create a static build of FrankenPHP

* try to use alpine

* path mapping

* cache and fixes

* fix

* fix include path

* fix include path

* fix include path

* switch to Docker

* fix github token

* cleanup

* various improvements

* macOS instructions

* fix GHA

* docs

* feat: mac static builds

* minor fix

* fix wd

* Apple silicon build

* Revert "Apple silicon build"

This reverts commit 7a2997e092.

* add opcache

* update builder

* upgrade to PHP 8.2

* switch to upstream static-php-cli, add intl
2023-09-12 22:08:19 +02:00
Kévin Dunglas
f5b599bc2b fix: superfluous response.WriteHeader call 2023-08-24 12:23:59 +02:00
Kévin Dunglas
ab0783519e perf: reduce the number of calls to cgo to set the headers 2023-08-18 19:20:32 +02:00
Kévin Dunglas
e65fdfff2f chore: better cgo directives 2023-08-18 18:21:21 +02:00
Kévin Dunglas
e0f2323bf6 fix : make sure the PHP request body buffer is full before giving it back (#187)
* test: large requests with Caddy

* fix: ensure that the request body buffer is full

* refactor: microoptim
2023-08-16 17:52:29 +02:00
Kévin Dunglas
2dbc94508c chore: better Zend Max Execution Timers message 2023-08-12 21:26:47 +02:00
Kévin Dunglas
027cdc7b40 fix: flush support with Caddy 2.7 2023-08-12 21:25:45 +02:00
Kévin Dunglas
307c5fa865 fix: properly cleanup workersReadyWG (#184) 2023-08-12 12:39:13 +02:00
Kévin Dunglas
b03ce0eb20 fix: don't abort con when streaming not possible 2023-08-08 15:28:56 +02:00
Kévin Dunglas
df976c1708 fix: race condition on shutdown 2023-08-06 17:37:52 +02:00
Kévin Dunglas
671fda9e29 feat: honor GOMAXPROCS and set it automatically in containers 2023-08-06 15:25:31 +02:00
Kévin Dunglas
6c215b8b10 feat: increase the default number of workers 2023-07-17 11:40:37 +02:00
DracoBlue
c8237554e2 The configuration to enable ZendMaxExecutionTimers is --enable-zend-max-execution-timers (#145) 2023-03-19 14:14:46 +01:00
Kévin Dunglas
75cd310292 feat: add support for PHP timeouts on Linux (#128) 2023-03-05 15:47:20 +01:00
Kévin Dunglas
e514823faa fix: use SA_ONSTACK in C-Thread-Pool 2022-12-20 10:24:34 +01:00
Kévin Dunglas
4332bbe97c fix: don't flush if the request body hasn't been read entirely (#122) 2022-12-13 20:21:47 +01:00
Kévin Dunglas
0ea179d402 fix: set the _GNU_SOURCE macro to allow memrchr usage (#124)
* fix: set the _GNU_SOURCE macro to allow memrchr usage

* only on Linux

* add -Werror to prevent future issues like this
2022-12-13 00:39:18 +01:00
Kévin Dunglas
2937aa8047 fix: panic: http: invalid Read on closed Body (#121) 2022-12-07 14:40:17 +01:00
Kévin Dunglas
229b4d6786 chore: switch back to upstream C-Thread-Pool lib (#119) 2022-12-03 17:00:53 +01:00
Kévin Dunglas
8e824a7906 perf: remove an extra call to cgo (#117) 2022-11-28 18:06:37 +01:00
Kévin Dunglas
878a30d92f fix: ensure there is always a free thread for non-worker scripts (#105) 2022-11-14 22:45:51 +01:00
Kévin Dunglas
6a6dda5ed9 feat: expose PHP version (#102) 2022-11-12 14:48:10 +01:00
Jockos
f0b2eb7445 feat: improve of performance of PHP variables registration (#94)
* feat: enhance php register variables

* apply comments

* fix errors

* improve benchmark

* remove debug statement

* use defer

* don't use defer in a loop

Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
2022-11-10 14:03:50 +01:00
Rob Landers
3abda4fbb6 feat: handle aborted connection (#95)
* Handle aborted connection

* Handle when writing as well

* return bytes written

* optimize return

* remove goroutine

* fix style

* Add tests

* add missing newline
2022-11-09 15:09:45 +01:00
Kévin Dunglas
8e136d0d25 feat: implement flush() (#90)
* feat: implement flush()

* add tests
2022-11-09 00:56:00 +01:00
Quentin Barloy
18202851bf dependencies: Update the way to get C-Thread-Pool (#88) 2022-11-08 01:08:40 +01:00
Rob Landers
9ef3bd7c47 feat: add fastcgi_finish_request() support (#69)
* Add function to ext

* buggy af, but kinda working

* Get worker and regular mode working

* fix formatting

* add eol

* add eol

* 🤦

* properly generate file

* use sync.Once
2022-11-03 08:36:47 +01:00
Kévin Dunglas
4c27ebc398 fix: dev Docker image and various typos (#67) 2022-10-25 17:26:51 +02:00
Kévin Dunglas
1e453036b2 fix: signals handling (#39) 2022-10-19 11:19:49 +02:00
Kévin Dunglas
b719e1cbea docs: improve docs of the Go module (#25) 2022-10-15 11:54:42 +02:00
Kévin Dunglas
acc48830f7 feat: improve Dockerfile and add some docs (#15) 2022-10-13 18:05:22 +02:00
Kévin Dunglas
b971c07d89 feat: improve default config (#14) 2022-10-12 09:38:45 +02:00
Kévin Dunglas
5af6b10d1f feat: add support for 103 Early Hints (#12) 2022-10-11 17:40:12 +02:00