How openwrtbuild/fastgithub works
FastGithub is a local GitHub acceleration proxy: clients send HTTP/HTTPS traffic through its proxy endpoint, while domain resolution, per-domain settings, and proxy handlers shape outbound connections. It also supports DNS/TCP interception, TLS certificate generation, flow analysis, and a desktop UI. The graph includes documented capabilities whose implementation was not sampled; those links are marked unverified rather than inferred from names alone.
Main entry points: DomainResolver.cs Domain resolver · HttpReverseProxyMiddleware.cs HTTP reverse proxy · HttpClientHandler.cs Resolved socket connect · Program.cs Application host
Components 21
Entry and settings
- Desktop UI
FastGithub.UI/Program.cs - Application host
FastGithub/Program.cs - App lifecycle
FastGithub/AppHostedService.cs - Domain settings
FastGithub.Configuration/FastGithubConfig.cs - Domain policies
FastGithub.Configuration/DomainConfig.cs
Domain resolution
- Domain resolver
FastGithub.DomainResolve/DomainResolver.cs - DNS lookup
FastGithub.DomainResolve/DnsClient.cs - Resolution persistence
FastGithub.DomainResolve/PersistenceService.cs
Proxy and TLS
- Outbound HTTP client
FastGithub.Http/HttpClient.cs - Resolved socket connect
FastGithub.Http/HttpClientHandler.cs - HTTP reverse proxy
FastGithub.HttpServer/HttpMiddlewares/HttpReverseProxyMiddleware.cs - TCP reverse proxy
FastGithub.HttpServer/TcpMiddlewares/TcpReverseProxyHandler.cs - Certificate service
FastGithub.HttpServer/Certs/CertService.cs - Certificate generator
FastGithub.HttpServer/Certs/CertGenerator.cs
Packet interception
- DNS interception
FastGithub.PacketIntercept/Dns/DnsInterceptor.cs - DNS intercept service
FastGithub.PacketIntercept/DnsInterceptHostedService.cs - TCP interception
FastGithub.PacketIntercept/Tcp/TcpInterceptor.cs
UI and flow
- Flow analysis
FastGithub.FlowAnalyze/FlowAnalyzer.cs - Desktop window
FastGithub.UI/MainWindow.xaml.cs
Other components
- Local client
- GitHub and other sites
Connections 19
- Local client → HTTP reverse proxy: proxies through
- Desktop UI → Application host: starts process
FastGithub.UI/Program.cs - Application host → App lifecycle: runs lifecycle
- Domain settings → Domain policies: builds policies
FastGithub.Configuration/FastGithubConfig.cs - Outbound HTTP client → Resolved socket connect: uses handler
FastGithub.Http/HttpClient.cs - Resolved socket connect → Domain resolver: resolves endpoints
FastGithub.Http/HttpClientHandler.cs - TCP reverse proxy → Domain resolver: resolves endpoints
FastGithub.HttpServer/TcpMiddlewares/TcpReverseProxyHandler.cs - HTTP reverse proxy → Outbound HTTP client: forwards requests
- DNS lookup → Domain settings: reads fallback DNS
FastGithub.DomainResolve/DnsClient.cs - Domain resolver → DNS lookup: performs lookups
- Domain resolver → Resolution persistence: persists results
- DNS intercept service → DNS interception: runs interception
FastGithub.PacketIntercept/DnsInterceptHostedService.cs - TCP interception → GitHub and other sites: intercepts traffic
- Certificate service → Certificate generator: creates certificates
FastGithub.HttpServer/Certs/CertService.cs - HTTP reverse proxy → GitHub and other sites: forwards traffic
- Flow analysis → Desktop window: displays statistics
- Local client → DNS interception: uses DNS interception
- Domain resolver → GitHub and other sites: selects fastest IP
- Domain policies → Resolved socket connect: sets TLS and IP policy
FastGithub.Http/HttpClientHandler.cs