Go言語でGTKを扱えるライブラリ、go-gtkのWidget上にwebkitブラウザをembed出来るライブラリを書きました。
mattn/go-webkit - GitHub使い方もgo-gtkのWidgetと同じです。
Go bindings for WebKit
https://github.com/mattn/go-webkit/
簡単なサンプルだとこう書けます。
package main
import "os"
import "gtk"
import "webkit"
func main() {
gtk.Init(nil)
window := gtk.Window(gtk.GTK_WINDOW_TOPLEVEL)
window.SetTitle("webkit")
window.Connect("destroy", gtk.MainQuit, nil)
swin := gtk.ScrolledWindow(nil, nil)
swin.SetPolicy(gtk.GTK_POLICY_AUTOMATIC, gtk.GTK_POLICY_AUTOMATIC)
swin.SetShadowType(gtk.GTK_SHADOW_IN)
webview := webkit.WebView()
webview.Connect("load-committed", func() {
entry.SetText(webview.GetUri())
}, nil)
swin.Add(webview)
window.Add(swin)
window.SetSizeRequest(600, 600)
window.ShowAll()
proxy := os.Getenv("HTTP_PROXY")
if len(proxy) > 0 {
soup_uri := webkit.SoupUri(proxy)
webkit.GetDefaultSession().Set("proxy-uri", soup_uri)
soup_uri.Free()
}
webview.LoadUri("http://mattn.kaoriya.net/")
gtk.Main()
}
簡単ですね!go言語はWebサーバが簡単に書けるライブラリがたくさんあります。web.goやtwisterを使えばfotofloみたいなサイトも簡単に書けます。これ、コンパイルされた実行モジュールで動いてるんですよ。かっこいいすよね。
garyburd/fotoflo - GitHubこういったWebサーバと埋め込みブラウザを使った1つのアプリケーションを提供出来る様になるって事です。面白いですね。
This project is the source for fotoflo.info
https://github.com/garyburd/fotoflo
ぜひ楽しいアプリケーションを作ってみて下さい。