Skip to content

Radiance is a pilot version of Lantern core (flashlight) utilizing the Outline SDK

License

Notifications You must be signed in to change notification settings

getlantern/radiance

Repository files navigation

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

About

Radiance is a pilot version of Lantern core (flashlight) utilizing the Outline SDK

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published