Kévin Dunglas
e01e40fd97
chore: bump deps ( #2078 )
2025-12-17 11:47:14 +01:00
dependabot[bot]
3599299cde
chore(caddy): bump github.com/spf13/cobra
...
Bumps the go-modules group in /caddy with 1 update: [github.com/spf13/cobra](https://github.com/spf13/cobra ).
Updates `github.com/spf13/cobra` from 1.10.1 to 1.10.2
- [Release notes](https://github.com/spf13/cobra/releases )
- [Commits](https://github.com/spf13/cobra/compare/v1.10.1...v1.10.2 )
---
updated-dependencies:
- dependency-name: github.com/spf13/cobra
dependency-version: 1.10.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: go-modules
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-12-15 13:41:56 +01:00
Kévin Dunglas
225ca409d3
feat: hot reload ( #2031 )
...
This patch brings hot reloading capabilities to PHP apps: in
development, the browser will automatically refresh the page when any
source file changes!
It's similar to HMR in JavaScript.
It is built on top of [the watcher
mechanism](https://frankenphp.dev/docs/config/#watching-for-file-changes )
and of the [Mercure](https://frankenphp.dev/docs/mercure/ ) integration.
Each time a watched file is modified, a Mercure update is sent, giving
the ability to the client to reload the page, or part of the page
(assets, images...).
Here is an example implementation:
```caddyfile
root ./public
mercure {
subscriber_jwt {env.MERCURE_SUBSCRIBER_JWT_KEY}
anonymous
}
php_server {
hot_reload
}
```
```php
<?php
header('Content-Type: text/html');
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Test</title>
<script>
const es = new EventSource('<?=$_SERVER['FRANKENPHP_HOT_RELOAD']?>');
es.onmessage = () => location.reload();
</script>
</head>
<body>
Hello
```
I plan to create a helper JS library to handle more advanced cases
(reloading CSS, JS, etc), similar to [HotWire
Spark](https://github.com/hotwired/spark ). Be sure to attend my
SymfonyCon to learn more!
There is still room for improvement:
- Provide an option to only trigger the update without reloading the
worker for some files (ex, images, JS, CSS...)
- Support classic mode (currently, only the worker mode is supported)
- Don't reload all workers when only the files used by one change
However, this PR is working as-is and can be merged as a first step.
This patch heavily refactors the watcher module. Maybe it will be
possible to extract it as a standalone library at some point (would be
useful to add a similar feature but not tight to PHP as a Caddy module).
---------
Signed-off-by: Kévin Dunglas <kevin@dunglas.fr >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-12-12 14:29:18 +01:00
Kacper Rowiński
e0dcf42852
chore: bump github.com/smallstep/certificates/ from 0.28.4 to 0.29.0
2025-12-09 11:40:58 +01:00
Max
c9ad9fc55a
headerKeyCache: use otter v2 ( #2040 )
...
Benchmarks show that version 1, while extremely fast with hot keys,
becomes several times slower than no‑cache under frequent misses.
Version 2 delivers consistently better performance across all scenarios,
with no allocations and stable latency.
```
BenchmarkGetUnCommonHeaderNoCacheSequential-12 7545640 169.4 ns/op 72 B/op 4 allocs/op
BenchmarkGetUnCommonHeaderV2Sequential-12 14471982 85.98 ns/op 0 B/op 0 allocs/op
BenchmarkGetUnCommonHeaderV1Sequential-12 19748048 59.63 ns/op 0 B/op 0 allocs/op
BenchmarkGetUnCommonHeaderNoCacheParallelOneKey-12 24352088 44.47 ns/op 72 B/op 4 allocs/op
BenchmarkGetUnCommonHeaderV2ParallelOneKey-12 91024160 11.76 ns/op 0 B/op 0 allocs/op
BenchmarkGetUnCommonHeaderV1ParallelOneKey-12 192048842 6.186 ns/op 0 B/op 0 allocs/op
BenchmarkGetUnCommonHeaderNoCacheParallelRandomMaximumSize-12 26261611 43.07 ns/op 62 B/op 3 allocs/op
BenchmarkGetUnCommonHeaderV2ParallelRandomMaximumSize-12 100000000 14.43 ns/op 0 B/op 0 allocs/op
BenchmarkGetUnCommonHeaderV1ParallelRandomMaximumSize-12 137813384 8.965 ns/op 0 B/op 0 allocs/op
BenchmarkGetUnCommonHeaderNoCacheParallelRandomLenKeys-12 24224664 46.57 ns/op 71 B/op 3 allocs/op
BenchmarkGetUnCommonHeaderV2ParallelRandomLenKeys-12 69002575 17.42 ns/op 0 B/op 0 allocs/op
BenchmarkGetUnCommonHeaderV1ParallelRandomLenKeys-12 8498404 253.1 ns/op 42 B/op 1 allocs/op
```
---------
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
2025-12-01 11:37:40 +01:00
Kévin Dunglas
fc5f6ef092
chore: prepare release 1.10.1
2025-11-25 10:54:34 +01:00
Kévin Dunglas
e6b3f70d91
chore: bump deps
2025-11-23 23:13:12 +01:00
Kévin Dunglas
c6cadf3bf6
chore: prepare release 1.10.0
2025-11-21 16:16:01 +01:00
Kévin Dunglas
75a48e81a7
chore: bump deps
2025-11-18 11:48:59 +01:00
Kévin Dunglas
41cb2bbeaa
feat: mercure_publish() PHP function to dispatch Mercure updates ( #1927 )
...
* feat: mercure_publish() PHP function to dispatch Mercure updates
* fix stubs for old versions
* review
* cleanup and fixes
2025-11-18 09:59:53 +01:00
Alexandre Daubois
40cb42aace
chore: bump net
2025-11-17 15:09:30 +01:00
Alexandre Daubois
b49aed1934
chore: bump deps
2025-10-31 16:51:26 +01:00
Alexandre Daubois
7668a27d4b
chore: bump /caddy sub-group deps ( #1863 )
2025-09-23 10:26:13 +02:00
dependabot[bot]
0f942c8601
chore(caddy): bump github.com/spf13/cobra
...
Bumps the go-modules group in /caddy with 1 update: [github.com/spf13/cobra](https://github.com/spf13/cobra ).
Updates `github.com/spf13/cobra` from 1.9.1 to 1.10.0
- [Release notes](https://github.com/spf13/cobra/releases )
- [Commits](https://github.com/spf13/cobra/compare/v1.9.1...v1.10.0 )
---
updated-dependencies:
- dependency-name: github.com/spf13/cobra
dependency-version: 1.10.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: go-modules
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-09-01 23:36:48 +02:00
Kévin Dunglas
ad86bf49c2
chore: prepare release 1.9.1
2025-08-28 19:18:41 +02:00
Kévin Dunglas
460d63e436
chore: bump deps and check go.mod files are clean in CI
2025-08-28 19:16:01 +02:00
Alexandre Daubois
99bb87167e
chore: bump deps
2025-08-27 15:56:40 +02:00
Kévin Dunglas
5f153e06d6
chore: upgrade to Go 1.25 ( #1811 )
...
* chore: upgrade to Go 1.25
* free all interned strings (test)
* Revert "free all interned strings (test)"
This reverts commit 34823baadb .
* Another test.
* Another test
* ASAN_OPTIONS: detect_leaks=0
* Update sanitizers.yaml
* Update sanitizers.yaml
* Update sanitizers.yaml
---------
Co-authored-by: Alliballibaba <alliballibaba@gmail.com >
2025-08-18 10:46:03 +02:00
Alexandre Daubois
6ad34b1cb3
chore: bump deps
2025-08-14 15:27:29 +02:00
Kévin Dunglas
50b438f978
chore: prepare release 1.9.0
2025-07-18 12:13:24 +02:00
Kévin Dunglas
f7ea33d328
chore: upgrade Mercure to v0.20
2025-07-18 12:11:51 +02:00
Kévin Dunglas
0c25b2488c
chore: bump deps
2025-07-16 13:29:04 +02:00
Kévin Dunglas
6be261169a
chore: prepare release 1.8.0
2025-07-01 15:43:12 +02:00
Kévin Dunglas
40ee7929a1
chore: bump deps ( #1708 )
2025-07-01 10:29:21 +02:00
Kévin Dunglas
80de1f8bc7
chore: bump deps ( #1702 )
2025-06-30 14:36:26 +02:00
Kévin Dunglas
12f469e701
chore: bump deps ( #1643 )
2025-06-19 19:10:59 +02:00
Kévin Dunglas
82ba882a4e
chore: prepare release 1.7.0
2025-06-03 10:04:05 +02:00
Kévin Dunglas
4b1679e70f
chore: bump deps
2025-06-02 17:36:51 +02:00
Kévin Dunglas
ee394756b1
chore: prepare release 1.6.2
2025-05-23 10:41:10 +02:00
Kévin Dunglas
1e49586b0e
chore: prepare release 1.6.1
2025-05-22 16:49:58 +02:00
Kévin Dunglas
d2b6f9e723
chore: prepare release 1.6.0
2025-05-16 10:16:35 +02:00
Kévin Dunglas
afa7dafe1c
chore: bump deps
2025-05-16 09:22:00 +02:00
Kévin Dunglas
0d12a5162d
fix: use local Go toolchain ( #1546 )
2025-05-11 22:30:19 +02:00
Indra Gunawan
1ec37f6cc9
feat: replace zap with slog ( #1527 )
2025-04-26 11:04:46 +02:00
Kévin Dunglas
49d2e62996
chore: bump Mercure and downgrade cbrotli ( #1525 )
...
* chore: bump Mercure
* downgrade cbrotli
2025-04-23 14:01:33 +02:00
Kévin Dunglas
4550027de4
feat: upgrade to Caddy 2.10
2025-04-22 17:34:11 +02:00
Kévin Dunglas
7f8e43fd62
feat: upgrade to Caddy 2.10
2025-04-22 16:15:11 +02:00
Kévin Dunglas
d3589f9770
chore: prepare release 1.5.0
2025-03-25 20:29:55 +01:00
Kévin Dunglas
565b3a9629
chore: bump deps ( #1455 )
2025-03-24 11:56:20 +01:00
dependabot[bot]
6203d207fa
chore(caddy): bump github.com/caddyserver/certmagic in /caddy
...
Bumps [github.com/caddyserver/certmagic](https://github.com/caddyserver/certmagic ) from 0.21.7 to 0.22.0.
- [Release notes](https://github.com/caddyserver/certmagic/releases )
- [Commits](https://github.com/caddyserver/certmagic/compare/v0.21.7...v0.22.0 )
---
updated-dependencies:
- dependency-name: github.com/caddyserver/certmagic
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-03-12 15:30:22 +01:00
Kévin Dunglas
409c0fdf5f
chore: bump deps ( #1434 )
2025-03-10 15:35:17 +01:00
Kévin Dunglas
965fa6570c
chore: prepare release 1.4.4
2025-02-19 12:43:26 +01:00
Kévin Dunglas
251567a617
fix: Mercure duplicate metrics panic ( #1393 )
...
* fix: Mercure duplicate metrics panic
* tidy
* ci: clang-format
2025-02-19 12:40:59 +01:00
Kévin Dunglas
d407dbd498
chore: prepare release 1.4.3
2025-02-18 09:19:00 +01:00
Kévin Dunglas
f61bc180c4
chore: upgrade to Go 1.24
2025-02-18 07:33:36 +01:00
Kévin Dunglas
941f218a79
chore: prepare release 1.4.2
2025-01-28 11:22:00 +01:00
Kévin Dunglas
7bd6ca89b0
chore: bump deps
2025-01-28 11:19:14 +01:00
Kévin Dunglas
d712aed2a5
chore: prepare release 1.4.1
2025-01-19 23:41:10 +01:00
Kévin Dunglas
c3031ea07f
chore: prepare release 1.4.0
2025-01-09 14:50:26 +01:00
Kévin Dunglas
39a88c3e83
chore: bump deps
2025-01-08 22:23:38 +01:00