119 Commits
Author SHA1 Message Date
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.
v0.6.1
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.
v0.6.0
2026-07-26 17:21:38 +08:00
ginuerzh e59581b1d7 chain: add FailCodes to HTTPNodeSettings for status-based node fail marking v0.5.5 2026-07-25 14:36:40 +08:00
ginuerzh 35505104c4 chain: add ProbeTypeCmd constant and Command field to ProbeConfig v0.5.4 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.
v0.5.3
2026-07-03 17:20:18 +08:00
ginuerzh abb9fa00d6 add MaxChunkSize field to HTTPBodyRewriteSettings for bounded buffering of chunked non-streaming bodies v0.5.2 2026-06-30 10:59:33 +08:00
ginuerzh 271bb42fdf add Rewriter field to HTTPBodyRewriteSettings for plugin-based rewriting v0.5.1 2026-06-27 22:51:05 +08:00
ginuerzh d728b4e07f add Rewriter interface for traffic rewriting v0.5.0 2026-06-27 21:40:46 +08:00
ginuerzh c40c6d6f52 routing: add Network field to Request struct for protocol-based routing v0.4.3 2026-06-24 17:25:59 +08:00
ginuerzh 53f7941f92 feat(recorder): add Metadata field to RecorderObject for plugin recorder metadata forwarding (#412) v0.4.2 2026-06-21 13:24:33 +08:00
ginuerzh b878e7a161 docs: add CLAUDE.md with module architecture and interface documentation v0.4.1 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
v0.4.0
2026-05-21 21:22:57 +08:00
ginuerzh 867317c965 add service option v0.3.3 2025-08-29 23:31:46 +08:00
ginuerzh 1d6443dd08 add BindError for listener v0.3.2 2025-06-28 18:06:57 +08:00
ginuerzh c988630f35 breaking change router.Router v0.3.1 2025-02-08 23:02:48 +08:00
ginuerzh 333770bb25 breaking change: router.Route v0.3.0 2025-02-07 15:31:23 +08:00
ginuerzh 8b66acedf6 change default logger v0.2.1 2025-01-08 23:07:46 +08:00
ginuerzh d0f34bbe15 add Stats interface v0.2.0 2024-12-24 20:09:11 +08:00
ginuerzh cb35b34792 rename HTTPNodeSettings.Header to RequestHeader v0.1.11 2024-11-17 16:13:36 +08:00
ginuerzh c9850e3b30 add routing rule for node v0.1.10 2024-11-15 20:20:27 +08:00
ginuerzh b6d34322d3 add response header option for HTTP node settings v0.1.9 2024-11-07 11:01:45 +08:00
ginuerzh 11b592b173 code clean v0.1.8 2024-10-22 22:53:01 +08:00
ginuerzh 4e1a63c922 observer: add Reset for stats v0.1.7 2024-10-11 20:29:31 +08:00
ginuerzh 8378a16e6e rm metadata/util v0.1.6 2024-10-10 22:41:44 +08:00
ginuerzh 0ae0c4d4c2 add alpn option for node tls config v0.1.5 2024-09-23 22:05:19 +08:00
ginuerzh e97978875b add http body option for recorder v0.1.4 2024-09-16 19:42:18 +08:00
ginuerzh 4a403f7033 add recorder option for handler v0.1.3 2024-09-14 23:20:04 +08:00
ginuerzh 413e3eaff6 update limiter v0.1.2 2024-08-31 09:19:38 +08:00
ginuerzh 2697697552 add rewrite body http node setting v0.1.1 2024-07-19 20:42:33 +08:00
ginuerzh 48d070d345 add router interface v0.1.0 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 f06f3bb46a Merge pull request #6 from cgroschupp/feature/whitelist
feat: change whitelist bypass behaviour
2024-04-24 22:49:14 +08:00
Christian Groschupp ed7f2dcdfc feat: change whitelist bypass behaviour 2024-04-16 20:58:50 +02:00
kist fea73cf682 Update recorder.go
Changed functions name to MetadataRecordOption
2024-03-09 20:45:15 +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