Commit Graph

94 Commits

Author SHA1 Message Date
Kévin Dunglas
b4aa8038ff feat: detect when worker crashes or terminates normally (#315) 2023-11-21 23:15:07 +01:00
Kévin Dunglas
2c583bcb16 feat: add support for input filters 2023-11-16 15:14:54 +01:00
Kévin Dunglas
aa1d968dcf refactor: faster $_SERVER variables creation 2023-11-16 14:40:52 +01: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
Kévin Dunglas
09b2282441 feat: set SAPI version 2023-09-16 13:55:41 +02:00
Kévin Dunglas
fb63099a88 feat: allow passing env vars to workers (#210) 2023-09-15 12:59:43 +02:00
Kévin Dunglas
f5b599bc2b fix: superfluous response.WriteHeader call 2023-08-24 12:23:59 +02:00
Kévin Dunglas
65e34172e9 style: minor C style improvements 2023-08-18 21:31:41 +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
70110dcc77 ci: Docker images for various PHP versions
Also adds semver support.
2023-07-17 10:18:33 +02:00
Kévin Dunglas
95e83a280e feat: compatibility with PHP 8.3 2023-07-04 17:22:29 +02: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
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
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
Joe Watkins
3f4ad4ee66 fix: crash on macOS (#81)
* nogc variants

* don't duplicate dtor, cleanup track vars with memset

* even cleaner
2022-11-01 09:31:56 +01:00
Joe Watkins
213a0dfa55 fix: memory leak in worker mode (#76)
* fix #50

* clearer

* only clean globals from symbol table

* use opt, avoid reading uninitialized COUNTED
2022-11-01 01:17:48 +01:00
Kévin Dunglas
13fb0beae9 fix: remove some more memory leaks in worker mode (#65)
* refactor: worker mode

* chore: small cleanup

* fix: remove some more memory leaks in worker mode
2022-10-24 20:38:09 +02:00
Kévin Dunglas
d339c6902f ci: fix Docker Push (#60) 2022-10-23 16:47:00 +02:00
Kévin Dunglas
c4c8319042 fix: memory leak in worker mode (#56)
* fix: memory leak in worker mode

* fix tests
2022-10-23 10:18:52 +02:00
Kévin Dunglas
084decfe97 feat: remove automatic exceptions handling (#53) 2022-10-21 17:40:31 +02:00
Kévin Dunglas
1e453036b2 fix: signals handling (#39) 2022-10-19 11:19:49 +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
5af6b10d1f feat: add support for 103 Early Hints (#12) 2022-10-11 17:40:12 +02:00
Kévin Dunglas
46ec897d2e feat: add stub PHP functions (#10) 2022-10-11 08:57:23 +02:00
Kévin Dunglas
7ec0043fe8 feat: handle errors in worker mode (#9)
* feat: handle errors in worker mode (not working)

* feat: better exception and error handling
2022-10-11 08:10:46 +02:00
Kévin Dunglas
ea5aa3d729 feat: add support for logs 2022-10-07 18:39:15 +02:00
Kévin Dunglas
f579793de9 fix: unwanted calls to WriteHeader() 2022-10-07 18:18:15 +02:00
Kévin Dunglas
c45a4c620f feat: improve sessions handling in workers 2022-10-07 16:59:27 +02:00
Kévin Dunglas
0b8e322375 fix: preserve autoloading in worker mode 2022-10-06 15:25:58 +02:00
Kévin Dunglas
796476d537 feat: use threads instead of GoRoutines (#6)
* feat: use threads instead of GoRoutines

* many improvements

* fix some bugs
2022-10-04 14:41:19 +02:00
Kévin Dunglas
84273ec395 fix: fix thread safety issues (#5)
* fix: fix thread safety issues

* some improvements

* wip

* tiny improvements
2022-06-03 17:18:07 +02:00
Kévin Dunglas
6da01cc858 refactor: minor cleanup 2022-05-21 11:03:10 +02:00
Kévin Dunglas
9761090c06 chore: fix some typos and conventions 2022-05-19 14:46:35 +02:00
Kévin Dunglas
09de805aaa fix: memory leaks and refactor worker code (#2) 2022-05-18 21:19:07 +02:00
Kévin Dunglas
7d81fa51fe feat: add a woker mode (#1)
* refactor: better memory management

* wip

* tmp

* introduce a go-like api

* upgraded to PHP 8.2

* Fix thread safety issues

* fix tests

* wip

* refactor worker

* worker prototype

* fix populate env

* session

* improve tests

* fix Caddy tests

* refactor
2022-05-18 11:52:24 +02:00
Kévin Dunglas
92a4c21eb7 fix: use emalloc to allocate the context 2021-11-26 13:26:12 +01:00
Kévin Dunglas
f037ba937a feat: better public API 2021-11-01 15:38:12 +01:00
Kévin Dunglas
290e9e1114 feat: Caddy module 2021-11-01 00:18:30 +01:00
Kévin Dunglas
a2607e6be7 initial commit 2021-09-24 18:52:20 +02:00