WebLoop: Scriptable, headless WebKit with a Go API. Like PhantomJS, but for Go.
WebLoop: Scriptable, headless WebKit with a Go API. Like PhantomJS, but for Go.
Scriptable, headless WebKit with a Go API. Like PhantomJS, but for Go. Render static HTML versions of dynamic JavaScript applications, automate browsing, run arbitrary JavaScript in a browser window context, etc., all from Go or the command line.
For instructions on installing these dependencies, see the go-webkit2 README.
To install WebLoop, run: go get github.com/sourcegraph/webloop/...
The included command static-reverse-proxy proxies a dynamic JavaScript application and serves an equivalent statically rendered HTML website to clients. Run it with:
$ go install github.com/sourcegraph/webloop/...
$ static-reverse-proxyFor example, to proxy a dynamic application at http://example.com and serve an equivalent statically rendered HTML website on http://localhost:13000, run:
$ static-reverse-proxy -target=http://example.com -http=:13000Run with -h to see more information.
StaticRenderer is an HTTP handler that serves a static HTML version of a
dynamic web application. Use it like:
staticHandler := &webloop.StaticRenderer{
TargetBaseURL: "http://dynamic-app.example.com",
WaitTimeout: time.Second * 3,
ReturnUnfinishedPages: true
}
http.Handle("/", staticHandler)See the examples/angular-static-seo/ directory for example code. Run the included binary with:
$ go run examples/angular-static-seo/server.goInstructions will be printed for accessing the 2 local demo HTTP servers. Run
with -h to see more information.
…See webloop_test.go for more examples.
See the AUTHORS file for a list of contributors.
Submit contributions via GitHub pull request. Patches should include tests and should pass golint.
No open issues yet, or sync has not completed.