Categorygithub.com/getlantern/radiance
repositorypackage
0.0.0-20250225224940-ae42b9cab287
Repository: https://github.com/getlantern/radiance.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

Go

Radiance

(WIP)

Radiance is a pilot PoC of Lantern core SDK (flashlight) utilizing the outline-sdk. What's the "core" idea behind a lantern, and I guess a flashlight? Light, or synonymously, radiance.

Current State

radiance runs a local server that proxies requests to a remote Lantern proxy. Requests are proxied over a transport.StreamDialer, which uses a specific protocol to communicate with the remote proxy, i.e. shadowsocks. radiance will automatically fetch the proxy and protocol information and configure the dialer. Currently, not all protocols are supported.

supported protocols
  • shadowsocks
  • multiplexing
  • algeneva

Add transports

New transports/protocols can be added by implementing transport.StreamDialer and creating a BuilderFn. Create a new package in transport (e.g. transport/myTransport) and add the necessary code to run the transport here, including the StreamDialer and BuilderFn. Then add registerDialerBuilder("myTransportName", myTransport.MyBuilderFn) to init in register.go to enable it. myTransportName must match protocol in the proxy config as this is what's used to configure the dialer.

[!NOTE] You should not need to make any other modifications to register.go or modify any other file.

Run

go run cmd/main.go -addr localhost:8080

TODO

  • Create an Outline transport StreamDialer using a proxy config.
  • Connect to and route requests to backend proxy using a StreamDialer.
  • Retrieve proxy config from backend.
  • Implement remaining protocols
    • tls w/ frag
    • algeneva
    • tlsmasq
    • water
    • starbridge
    • vmess
    • broflake?
  • Add socks5 support
  • Implement VPN TUN
  • Add way to manage multiple proxies. MAB?
  • Switch from getlantern/golog to slog
  • Add PacketDialer (UDP) support
  • Add support for split tunneling, using v2ray's routing rule syntax