ginuerzh
832db16afd
chain: add HTTP header rewrite settings and HostPattern for mirror routing
...
Add HTTPHeaderRewriteSettings (regex or plugin-based header rewrite rules)
and RewriteRequestHeader/RewriteResponseHeader fields to HTTPNodeSettings.
Generalize the static Host override into a two-part mechanism:
- HostPattern: regex matched against req.URL.Path whose submatches expand
into the Host template ($1, $2, ...), restoring the upstream Host from
an encoded path (e.g. /user.github.io/x -> Host user.github.io). It only
affects the Host header, never the dial target or TLS SNI, so it targets
Host-routed origins (GitHub Pages) rather than SNI-routed ones.
- Host: static value when HostPattern is nil; replacement template when set.
2026-08-29 08:37:28 +08:00
ginuerzh
94ec87ddb6
core/cache: add generic cache interface and handler option
...
Cache interface (Get/Set/Delete) with Entry, SetOptions, and
ErrNotFound sentinel. Used by HTTP response caching and planned
for DNS/resolver migration.
2026-07-26 17:21:38 +08:00
ginuerzh
e59581b1d7
chain: add FailCodes to HTTPNodeSettings for status-based node fail marking
2026-07-25 14:36:40 +08:00
ginuerzh
35505104c4
chain: add ProbeTypeCmd constant and Command field to ProbeConfig
2026-07-16 17:21:56 +08:00
ginuerzh
3b64d634e2
chain: add node-level liveness probe types
...
Add ProbeType, ProbeConfig, ProbeResult, ProbeResultReader to core/chain.
Node gains probeResult (atomic.Value), probeCancel (context.CancelFunc),
ProbeResult(), SetProbeResult(), SetProbeCancel(), and Close() method.
2026-07-16 16:44:35 +08:00
ginuerzh
1d9cc3aabe
add HTTP request body matching for routing and node selection
...
Add Body fields to routing.Request and hop.SelectOptions, plus
MatcherBodySize on NodeOptions so handlers can expose a size-capped
request body prefix to body matchers during node selection.
2026-07-03 17:20:18 +08:00
ginuerzh
abb9fa00d6
add MaxChunkSize field to HTTPBodyRewriteSettings for bounded buffering of chunked non-streaming bodies
2026-06-30 10:59:33 +08:00
ginuerzh
271bb42fdf
add Rewriter field to HTTPBodyRewriteSettings for plugin-based rewriting
2026-06-27 22:51:05 +08:00
ginuerzh
d728b4e07f
add Rewriter interface for traffic rewriting
2026-06-27 21:40:46 +08:00
ginuerzh
c40c6d6f52
routing: add Network field to Request struct for protocol-based routing
2026-06-24 17:25:59 +08:00
ginuerzh
53f7941f92
feat(recorder): add Metadata field to RecorderObject for plugin recorder metadata forwarding ( #412 )
2026-06-21 13:24:33 +08:00
ginuerzh
b878e7a161
docs: add CLAUDE.md with module architecture and interface documentation
2026-05-31 19:33:26 +08:00
ginuerzh
1f04d2e2ea
docs(chain/node,observer/stats): fix doc comment formatting, clarify Stats.Reset, add RewriteRequestBody field
2026-05-31 19:32:16 +08:00
ginuerzh
3cdfea5740
Add English documentation comments to all core interfaces and types
2026-05-22 17:23:23 +08:00
ginuerzh
d7256280da
breaking change: add network param to Admission.Admit, add DialOption to Router.Dial
...
- Admission.Admit gains network parameter for network-aware access control
- Router.Dial gains variadic DialOption, matching Route.Dial and Router.Bind
- Fix typos: WithHostOption, ResolverNodeOption, ErrClosed message
- Add comprehensive README with architecture diagrams
2026-05-21 21:22:57 +08:00
ginuerzh
867317c965
add service option
2025-08-29 23:31:46 +08:00
ginuerzh
1d6443dd08
add BindError for listener
2025-06-28 18:06:57 +08:00
ginuerzh
c988630f35
breaking change router.Router
2025-02-08 23:02:48 +08:00
ginuerzh
333770bb25
breaking change: router.Route
2025-02-07 15:31:23 +08:00
ginuerzh
8b66acedf6
change default logger
2025-01-08 23:07:46 +08:00
ginuerzh
d0f34bbe15
add Stats interface
2024-12-24 20:09:11 +08:00
ginuerzh
cb35b34792
rename HTTPNodeSettings.Header to RequestHeader
2024-11-17 16:13:36 +08:00
ginuerzh
c9850e3b30
add routing rule for node
2024-11-15 20:20:27 +08:00
ginuerzh
b6d34322d3
add response header option for HTTP node settings
2024-11-07 11:01:45 +08:00
ginuerzh
11b592b173
code clean
2024-10-22 22:53:01 +08:00
ginuerzh
4e1a63c922
observer: add Reset for stats
2024-10-11 20:29:31 +08:00
ginuerzh
8378a16e6e
rm metadata/util
2024-10-10 22:41:44 +08:00
ginuerzh
0ae0c4d4c2
add alpn option for node tls config
2024-09-23 22:05:19 +08:00
ginuerzh
e97978875b
add http body option for recorder
2024-09-16 19:42:18 +08:00
ginuerzh
4a403f7033
add recorder option for handler
2024-09-14 23:20:04 +08:00
ginuerzh
413e3eaff6
update limiter
2024-08-31 09:19:38 +08:00
ginuerzh
2697697552
add rewrite body http node setting
2024-07-19 20:42:33 +08:00
ginuerzh
48d070d345
add router interface
2024-07-08 22:28:21 +08:00
ginuerzh
30cc928705
add observer/stats
2024-07-04 23:03:22 +08:00
ginuerzh
4e831b95e8
fix timeout for router
2024-06-25 20:37:08 +08:00
ginuerzh
ca340b1bf1
add netns option for handler and listener
2024-06-24 21:13:23 +08:00
ginuerzh
5aede9a2b3
add support for linux network namespace
2024-06-21 23:34:12 +08:00
ginuerzh
8d554ddcf7
add filter node option
2024-05-08 21:20:29 +08:00
ginuerzh
5d6c2115fa
update go.mod
2024-04-24 23:31:55 +08:00
ginuerzh
a06608ccaf
added http url rewrite setting for forwarder node
2024-01-31 23:17:24 +08:00
ginuerzh
04314fa084
added auther option for node http settings
2024-01-27 21:06:04 +08:00
ginuerzh
5a427b4eaf
add observer
2024-01-03 20:53:00 +08:00
ginuerzh
6b5c04b5e4
added logger group
2023-12-19 21:23:06 +08:00
ginuerzh
abc73f2ca2
update router interface
2023-11-19 16:14:03 +08:00
ginuerzh
6b01698ea9
add router interface
2023-11-19 14:20:35 +08:00
ginuerzh
486f2cee61
add traffic limiter option for handler
2023-11-18 18:25:40 +08:00
ginuerzh
a916f04016
update ingress interface
2023-11-13 20:38:50 +08:00
ginuerzh
8e4fc06cf1
add more node options
2023-11-09 20:33:12 +08:00
ginuerzh
7f581cb668
improve udp listener
2023-11-07 23:09:07 +08:00
ginuerzh
55d7b2e312
update sd interface
2023-11-02 20:50:25 +08:00
ginuerzh
8835e0e647
add sd
2023-10-31 22:56:51 +08:00
ginuerzh
d975ec3c74
add metadata option for recorder
2023-10-27 22:08:45 +08:00
ginuerzh
9e767d6745
add options for components
2023-10-26 22:20:46 +08:00
ginuerzh
6431cd8bb9
add path option for bypass
2023-10-20 19:12:49 +08:00
ginuerzh
d354cf2539
update bufpool
2023-10-19 23:48:23 +08:00
ginuerzh
f08c814602
update Ingress interface
2023-10-15 15:35:40 +08:00
ginuerzh
4525630abb
add network for node
2023-10-09 21:26:41 +08:00
ginuerzh
bf3b76a273
add network for bypass
2023-09-30 17:48:40 +08:00
ginuerzh
b0bd45c1b8
move hop out of chain
2023-09-28 21:01:25 +08:00
ginuerzh
6d0e88635b
update auther interface
2023-09-20 22:53:36 +08:00
ginuerzh
a1419ec2f4
add id for auther
2023-09-19 22:19:21 +08:00
ginuerzh
c258a114c4
add recorder options
2023-09-18 21:12:08 +08:00
ginuerzh
801f835e9a
fix domain name resolution for router
2023-09-16 21:46:12 +08:00
ginuerzh
a2115a3d38
add context for modules
2023-04-18 20:46:44 +08:00
ginuerzh
f3482d7cd8
fix nil route panic
2023-01-31 18:05:36 +08:00
ginuerzh
ff3b77ac28
add auther option for node
2023-01-31 13:37:58 +08:00
ginuerzh
1a643651c0
add new options for chain node
2023-01-29 20:45:13 +08:00
ginuerzh
1a8c1ccb1d
add ingress interface
2023-01-14 13:09:24 +08:00
ginuerzh
36ed0eae2d
update metadata utils
2022-12-21 18:18:23 +08:00
ginuerzh
ba87494cef
add Set for traffic Limiter
2022-12-19 19:34:13 +08:00
ginuerzh
ceccf65ca1
update go.mod
2022-12-02 17:36:42 +08:00
ginuerzh
c9c31fa74c
update common/net
2022-12-01 19:22:14 +08:00
ginuerzh
8effb0b8b9
add protocol option for node
2022-11-30 10:47:27 +08:00
ginuerzh
0f0679a3ec
add registry interface
2022-11-29 09:39:00 +08:00
ginuerzh
c2a1dd2a89
add vhost for node
2022-11-11 22:21:29 +08:00
ginuerzh
eb9d483127
fix GetString for metadata
2022-10-20 21:02:24 +08:00
ginuerzh
6e7a8f4619
mv metrics/service to x
2022-09-28 11:46:32 +08:00
ginuerzh
41ff9835a6
add chain hop
2022-09-20 11:48:30 +08:00
ginuerzh
50d443049f
add request rate limiter
2022-09-14 19:53:21 +08:00
ginuerzh
45b7ac2021
add conn limiter
2022-09-14 00:14:20 +08:00
ginuerzh
e7a104651a
add dialer for connector
2022-09-08 22:39:17 +08:00
ginuerzh
c546a6b711
add proxy protocol
2022-09-08 21:29:25 +08:00
ginuerzh
5c46613716
add rate limiter
2022-09-05 22:46:53 +08:00
ginuerzh
b25f90c55e
add limiter
2022-09-05 10:57:07 +08:00
ginuerzh
99adf4bb06
update selector
2022-09-04 13:22:34 +08:00
ginuerzh
7136710673
add context for selector
2022-09-02 17:23:28 +08:00
ginuerzh
2835a5d44a
add Route and Selector interfaces
2022-09-02 14:59:34 +08:00
ginuerzh
201edf2de5
add backup filter
2022-09-02 11:52:29 +08:00
ginuerzh
b88ab3acdc
add chain group
2022-09-02 10:54:42 +08:00
ginuerzh
e77908a89e
remove invalidFilter for selector
2022-08-31 10:09:31 +08:00
ginuerzh
04b4a79b80
add new funcs for NodeGroup
2022-08-25 21:33:41 +08:00
ginuerzh
81bf7b985a
improve chain node bypass
2022-08-24 23:12:20 +08:00
ginuerzh
ff51aef518
add some helper structs
2022-08-23 21:46:27 +08:00
ginuerzh
2cc1d6f52c
add trace log level
2022-08-18 10:28:48 +08:00
ginuerzh
85e799802e
fix default selector
2022-08-18 09:44:30 +08:00
ginuerzh
513eefe034
update conditional metrics usage
2022-07-29 21:18:01 +08:00
ginuerzh
5a15f53fc6
add new recorder object
2022-05-22 15:40:47 +08:00
ginuerzh
acee883234
add control for udp conn
2022-04-13 22:35:12 +08:00
ginuerzh
03988fee0b
add recorder
2022-04-11 22:53:02 +08:00
ginuerzh
a117222cde
fix panic in router metrics
2022-04-08 21:17:22 +08:00