Growse は標準の HTTP_PROXY、HTTPS_PROXY、NO_PROXY 環境変数を使用する。
プロキシ設定を切り替えた後の新しいリクエストでは、その時点の値を読み直すため、
アプリケーションを再起動する必要はない。
Growseは、GoまたはJavaScriptをクライアントサイド言語として実行する実験的なWebブラウザです。
HTMLとCSSで画面を構築し、Tab単位のGo / JS selectorでWebGoまたはJavaScriptから同じDOM、Event、Scheduler、Fetch、Storage、Navigationを操作できます。desktop appの新規TabはJavaScriptが既定で、WebGo PageはGoへ明示的に切り替えられます。
| 項目 | 主な機能 |
|---|---|
| ブラウジング | 左側Vertical Tab、URL入力、リンク遷移、same-document Routing、戻る、進む、再読込、Scroll復元 |
| HTML / DOM | 要素の検索・生成・追加・削除、属性・class・Form値の操作 |
| CSS Layout | Flow / Float、intrinsic sizing、Table、Flexbox、Grid / Subgrid、Writing Mode、Position / Sticky、Overflow、Multi-column |
| CSS Paint | Color Level 4、Gradient、複数Background、Shadow、Opacity、2D Transform、bounded Filter / Blend |
| Animation | CSS Transition、@keyframes、Easing、Iteration、Direction、Fill Mode、Pause、prefers-reduced-motion |
| Form | Form Controls、Focus、Constraint Validation、GET / POST Submission |
| Scheduler | timeout、interval、Animation Frame、Page終了時の自動解除 |
| Storage | Tab間で共有する永続Local Storage、Storage Event、Tab単位のSession Storage |
| HTTP | WebGo Fetch、Cookie、Same-Origin Policy、CORS、Freshness・再検証・Disk対応のHTTP Cache |
| Dual Runtime | desktopはJavaScript既定、Tab単位Go / JavaScript切替、完全reload、Engine間分離 |
| External JavaScript | 通常HTTP(S) Pageのclassic / async / defer、ES Modules、dynamic import、import map |
| Browser-grade Compatibility | 明示的にJSを選んだTabで固定Next.js / SvelteKit実build、Chromium差分Gate、非同期media、incremental rendering、bounded compositor |
| WebAssembly | JavaScript API、streaming compile / instantiate、Memory / Table / Instance quota |
| Browsing Context | same / cross-origin iframe、sandbox、postMessage、独立Runtime |
| Offline | Service Worker registration / lifecycle / fetch、Cache Storage、idle restart |
| Web API | Go / JavaScript共通のDOM Event、Fetch、Scheduler、History、Navigation、Storage、Console API |
| DevTools | Console、Inspector、Network、秘密情報を持たないPage / Frame / Service Worker Runtime診断 |
詳しい対応範囲と制限は、CSS対応表、Form / Fetch / Cookie対応表、Storage / Cache対応表を参照してください。
Linux、macOS、Git Bashを利用できるWindowsでは、最新版を~/.local/binへインストールできます。InstallerはダウンロードしたArchiveのSHA-256 checksumを検証します。
Installerはcommandに加えて、OSごとのGUI Applicationも登録します。
- Linux: Desktop EntryとIconを
$XDG_DATA_HOMEへ配置します。未設定時は~/.local/shareを使用します。UbuntuのApplication一覧から起動してDockへ登録できます。 - macOS:
Growse.appを~/Applicationsへ配置し、growsecommandから同じApplication Bundleを起動します。 - Windows: 専用Iconを配置し、ユーザーのStart Menu ProgramsへGrowse Shortcutを登録します。
実行中は、リリース確認、環境判定、検証、インストールの進捗を段階ごとに表示します。対話端末ではColor表示になり、CIやFileへのRedirectでは自動的にColorを無効化します。明示的に切り替える場合はGROWSE_COLOR=always|neverを、Colorを使わない一般的な設定にはNO_COLOR=1を指定できます。
wget -qO- https://github.com/Grove-Computing/Growse/releases/latest/download/install.sh | bashVersionとインストール先を指定する場合は、環境変数を利用します。
wget -qO- https://github.com/Grove-Computing/Growse/releases/latest/download/install.sh | GROWSE_VERSION=v0.20.0 GROWSE_INSTALL_DIR=/usr/local/bin bashGUI Applicationの配置先は、GROWSE_DATA_HOME、GROWSE_APPLICATIONS_DIR、GROWSE_WINDOWS_PROGRAMS_DIRで変更できます。
Linux amd64のDocker imageを、GitHub Container Registryから取得できます。
docker pull ghcr.io/grove-computing/growse:v0.20.0GrowseはGUI applicationのため、Containerから起動する場合はホストのDisplay ServerとGPU deviceを接続する必要があります。
- Go 1.26以降
- Gioが利用するOSのグラフィックス開発ライブラリ
Ubuntu / Debian系では、次のパッケージをインストールします。
sudo apt-get update
sudo apt-get install -y libvulkan-dev gcc pkg-config libwayland-dev libx11-dev libx11-xcb-dev libxkbcommon-x11-dev libgles2-mesa-dev libegl1-mesa-dev libffi-dev libxcursor-devほかのLinuxディストリビューションについては、GioのLinuxセットアップ手順を参照してください。
go mod download
go run ./cmd/growse起動すると、左側Vertical Tab Rail、戻る・進む・再読込・DevTools・URL入力欄・Gopherボタン・状態表示を備えたブラウザウィンドウが開きます。
別のターミナルでDemoを1つ配信し、Growseでhttp://localhost:6053を開きます。
python3 -m http.server 6053 --directory examples/data-appほかのDemoへ切り替える場合は、配信するディレクトリを変更します。
| Demo | 配信ディレクトリ | 確認できる機能 |
|---|---|---|
| Counter | examples/counter |
click Eventによるカウント更新 |
| Todo | examples/todo |
テキスト入力、Form送信、完了切替、削除 |
| CSS3 Core Showcase | examples/css3-core |
Custom Property、calc()、Media Query、Gradient、Box Model |
| Flexbox Showcase | examples/flexbox |
grow / shrink、wrap、alignment、gap、auto margin、nested flex |
| Dashboard | examples/dashboard |
Grid、Position、複数Background、Shadow、Transform、Opacity |
| Animation Showcase | examples/animation |
hover Transition、複数Keyframes Animation |
| Data App Showcase | examples/data-app |
Form、WebGo Fetch、structured Headers、Session Cookie、DOM更新、Animation |
| Persistent App Showcase | examples/persistent-app |
Scheduler、same-document Routing、Local / Session Storage、Fetch、HTTP Cache、offline状態 |
| Multi-Tab Workspace | go run ./examples/multi-tab-workspace |
Vertical Tab、Storage Event、共有Cookie / Cache、Tab別Session / Scheduler |
| DevTools Showcase | go run ./examples/devtools |
Console 4 level、DOM / Style / Layout、成功Fetch、redirect、cache、HTTP error、timeout |
| Dual Runtime Showcase | go run ./examples/dual-runtime |
同じUIのGo / JavaScript切替、DOM、Event、Timer、Fetch、Storage、History、Runtime error |
| External Web Platform | go run ./examples/external-web-platform |
外部classic / Module、dynamic import、WASM、same / cross-origin iframe、Service Worker offline、cross-origin CSS、sandbox |
| Modern Web Compatibility | go run ./examples/modern-web-compat |
Next.js / SvelteKit SSR、Tailwind CSS v4実artifact、SSR先行表示、段階的image更新、hydration、priority / cache / lifecycle診断 |
| Browser-grade Compatibility | go run ./examples/browser-grade-compat |
desktop / narrow・DPR 1 / 2 corpus、Chromium差分、visual / performance Gate、resource queue・dirty subtree・layer・damage診断 |
| Real-Site Compatibility Gate | GROWSE_REAL_SITE_ARTIFACT_DIR=/tmp/growse-real-site bash tests/v020-real-site-visual.sh |
7サイトの固定fixture、desktop / narrow、P0 content loss / P1 structural breakage、Growse・Chromium・diff PNG |
| Visual Fidelity Showcase | go run ./examples/visual-fidelity |
CJK fallback、wrap、vertical writing、shadow、gradient、radius、clip、transform、filter、responsive viewport、resource completion |
| CSS Layout 2026 | go run ./examples/css-layout-2026 |
Flow、Sizing / Table、Flex / Grid / Subgrid、Writing Mode、Sticky / Overflow、Multi-column、動的reflow |
WebGoソースは通常のGo build対象から除外するため、各Demoでは_app.goとして配置しています。
Multi-Tab Workspaceは専用のlocal fixture serverを起動し、Growseでhttp://localhost:6053を開きます。Notes画面のリンクからTasksとActivityを新しいVertical Tabへ開けます。外部ServiceやAPI keyは不要です。
DevTools Showcaseも専用のlocal fixture serverだけを使用します。外部通信や実Credentialなしで、Console、Inspector、Networkの通常・error・timeout・cache状態を再現できます。
Dual Runtime Showcaseもlocalhost内だけで完結します。ツールバーのGo / JSを押すとPageを完全reloadし、同じHTML/CSS上のCounterとWeb API処理を選択Engineだけで実行します。
External Web Platform Showcaseはtop-level、CDN、Frameを別のlocal Originで配信し、Internet、DNS、Credentialなしで外部サイト経路を再現します。起動後に表示されるURLをJavaScript Engineで開くと、Module / WASM / iframe / Service Worker / sandbox状態を確認できます。
Modern Web Compatibility ShowcaseはNext.js / SvelteKit fixtureに加え、Tailwind CSS v4.1.12で実際に生成したstylesheetとSvelteKit SSR相当HTMLを/real-site/でlocalhostだけから配信します。desktop appでは既定のJavaScript Engineで、遅いscriptを待つ間のSSR先行表示、priority付きimage queue、段階的image commit、hydration、日本語、重複画像のdecode再利用、responsive grid、transform / opacity animationを確認できます。Go Engineへ切り替えた場合はSSR HTMLとEngine非依存resourceだけを表示し、JavaScriptを取得・実行しません。DevToolsはcache hit / miss / coalesced request / cancellation / rejectionをbody-free counterとして表示します。
Browser-grade Compatibility Showcaseは同じ固定framework artifactをdesktop / narrow、DPR 1 / 2、SSR / resource完了 / hydration / interaction / scroll / animationのcorpusとして公開します。tests/v017-conformance.shはChromium referenceとのDOM landmark、computed style、geometry、focus、resource、region別visual diffと固定runner性能をRelease Gateとして検証します。
CSS Layout 2026 Showcaseはv0.19.0のscreen向けbaselineを1ページへ集約します。6個の操作ボタンでfloat / BFC、Table、Writing Mode / direction、relative / transform、Multi-columnを動的に切り替え、late image、nested scroll、Sticky、Paint / Hit Testingを同じrevisionで確認できます。固定Chromium 153とFirefox 156との差分fixture、選定WPT、Next.js / SvelteKit / Tailwind corpusはoffline CIで検証します。
Visual Fidelity Showcaseはv0.20.0の実raster evidenceを補完するローカルfixtureです。Latin / CJK / combining mark のfallbackと折返し、vertical writing、shadow、gradient、radius、clip、2D transform、filter、focus、resize、scroll、resource completionを一画面で確認できます。pixelを完全一致させる対象は固定font・viewport・DPRのCI fixtureに限り、任意サイト、全font、complex script、3D transform、SVG filter全体との完全一致は保証しません。
Real-Site Compatibility Gateは1MB Club、日本語Wikipedia、GitHub profile、cv.btxx.org、t0.vc、Schemescape、KIDLATを取得情報付きのsanitized fixtureとして固定します。desktop / narrowの両方で主要region、文字切れ・重なり、reload、scroll、focus、link、font / image完了を検証し、P0 / P1が1件でもあれば失敗します。公開サイトはrelease candidateのlive smokeにだけ使い、CI baselineは自動更新しません。
Growseは取得したHTMLとCSSを、独自のPipelineで画面へ描画します。
HTML / CSS
→ DOM
→ Computed Style
→ Layout Tree
→ Display List
→ Viewport
Animation中のPaintとHit Testingは、同じFrameの値を参照します。transform / opacityだけのframeは基準Layout Treeと静的Display Listを再利用し、layoutへ影響する変更だけを再構築します。画像はPage generation内のfetch / decode cacheと、target size・DPR・object-fit・filter単位のbounded paint cacheを使います。DOMを変更すると影響するresourceとComputed Style以降を更新します。
- 左側のVertical Tab RailからTabを作成、選択、終了できます。TabごとにNavigation、History、Scroll、Focus、WebGo Runtime、Scheduler、Session Storageを保持します。
- URL入力欄でEnterを押すか、Gopherボタンを押すと移動します。
- リンクのclick、戻る、進む、履歴を増やさない再読込に対応しています。
Ctrl+T(macOSではCommand+T)でTabを作成し、Ctrl+W(macOSではCommand+W)でactive Tabを終了します。Ctrl+TabとCtrl+Shift+Tabで前後のTabへ切り替えます。Ctrl+L(macOSではCommand+L)でURL入力欄へ移動し、現在のURLを全選択します。Ctrl+R(macOSではCommand+R)で通常の再読込、Ctrl+Shift+R(macOSではCommand+Shift+R)でHTTP Cacheへ再検証を要求する強制再読込を実行します。- リンクへカーソルを重ねると、認証情報を除去した遷移先URLを状態表示に示します。
- ウィンドウ内では、青いGopherをマウスカーソルとして表示します。
Goでは<script type="text/go">をYaegiで、JavaScriptではtype省略、text/javascript、application/javascriptとtype="module"をgojaで実行します。Go sourceはtrusted loopbackかつsame-originに限定します。JavaScriptは通常のHTTP(S) Pageでinline / external classicとES Modulesを実行し、redirect、MIME、mixed content、CORS、credentials、integrity、sizeをBrowser側で検証します。選択していないEngineのScriptは取得しません。
EngineはTabごとに保持し、desktopの新規TabではJavaScript、WebGo PageではGoを明示選択します。切り替え時は旧Runtime、Event、Timer、Fetch、Storage callbackを停止して完全reloadします。Go RuntimeとJavaScript Runtimeを同時実行せず、値やfunctionを共有しません。
growse/dom: DOM、Form、Eventを操作growse/fetch: Headers、JSON / text / binary / FormData body、AbortController、timeoutを備えた非同期HTTP Requestを実行growse/navigation: 現在URL、pushState / replaceState、History traversalとEventを操作growse/scheduler: timeout、interval、Animation Frameを登録・解除growse/storage: Origin単位のLocal / Session Storageを操作し、OnChangeで別TabのLocal Storage更新を受信growse/console:Log、Info、Warn、ErrorをPage単位のDevTools Consoleへ記録- Fetch callback: PageのEvent Queueで実行
- Page終了時: Timer、Frame callback、実行中Fetchをcancelし、Runtime参照を解放
JavaScriptはconsole、DOM / Event、Timer / Animation Frame、Promise形式fetch、Storage、Navigationに加え、ES Modules、dynamic resource、hydration向けDOM / CSSOM / observer、WebAssembly、iframe messaging、Service Worker / Cache Storageの検証済みsubsetを提供します。これらはdesktopの既定JavaScript Tab、またはJSへ明示切替したTabだけで有効になり、Go Engineへhost objectやcallbackを公開しません。Node.js、npm、CommonJS、WASI、OS、filesystem、process、Go reflectionは公開しません。詳細はRuntime / Web API対応表を参照してください。
Go / JavaScript / WASMとService WorkerはBrowser UIとは別のresource-bounded worker processで実行し、version / size制限付きIPCとBrowserが再検証するbrokered APIだけを使用します。必須sandbox状態を検証できない場合はcodeを実行しません。この境界は未知のOS kernel、Go runtime、goja、wazero、decoderの脆弱性まで排除するものではありません。詳細はRuntime worker / Web Platform設計とSECURITY.mdを参照してください。
ツールバーのDevToolsボタンまたはF12で、active Tabの下部へDevToolsを開閉できます。選択panelとfilterはTabごとに保持されます。
- Console: Go / JavaScript Engine、4 level、script / runtime errorを表示し、level filterとclearを提供
- Inspector: active PageのDOM snapshotを選択し、公開attribute、主要Computed Style、Layout Boxをread-only表示
- Network: Navigation、resource、Form、Fetchのmethod、外部Script Engine、redacted URL、timing、status、redirect、cache、size、error categoryを表示
- Runtime: Page / Frame / Service Worker context、script kind / schedule、Engine、generation、CSS局所無視理由、font fallback family、image cache hit / miss / eviction、frame rebuild理由、sandbox capabilityを表示
DevToolsはRequest / Response body、Header、Cookie、Authorizationを保持しません。URL userinfoとquery valueをマスクし、password input valueもInspectorへ公開しません。安全上限と詳細はWebGo DevTools設計を参照してください。
| 文書 | 内容 |
|---|---|
| CSS対応表 | CSS Property、Layout、Animationの対応状況と制限 |
| Form / Fetch / Cookie対応表 | Form、HTTP、Cookie、CORSの対応状況と制限 |
| Storage / Cache対応表 | Web Storage、HTTP Cache、永続化、quotaの対応状況と制限 |
| Visual Regression Test | 固定Viewport、Font、Scaleによる既存gateと、v0.20.0の7サイトdesktop / narrow real-site visual gate |
| Performance Baseline | Layout、Paint、Form、Scheduler、History、Storage、CacheのBenchmark基準値 |
| WPT由来テスト | Web Platform Testsから移植したTestと出典 |
| Developer Supply Chain Security | 不可視Code検査、Extension管理、署名、Credential、Incident Response |
| WebGo DevTools設計 | Console、Inspector、Network、Runtimeのデータ境界、redaction、安全上限 |
| Runtime / Web API対応表 | Go / JavaScript Engine、Script type、API対応、制約、非対応範囲 |
| Runtime worker / Web Platform設計 | worker process、IPC、sandbox、generation、Frame / Service Worker所有境界 |
| v0.9.0リリース定義 | v0.9.0のTheme、Scope、完了条件 |
| v0.10.0リリース定義 | v0.10.0のTheme、Scope、完了条件 |
| v0.11.0リリース定義 | v0.11.0のTheme、Scope、完了条件 |
| v0.12.0リリース定義 | v0.12.0 WebGo DevToolsのTheme、Scope、完了条件 |
| v0.13.0リリース定義 | v0.13.0 Go / JavaScript Dual RuntimeのTheme、Scope、完了条件 |
| v0.14.0リリース定義 | v0.14.0 External JavaScript / Module / WASM / iframe / Service Worker / sandboxのTheme、Scope、完了条件 |
| v0.15.0リリース定義 | v0.15.0 Modern Web Compatibility、framework CSS / hydration、image / SVG / fontのTheme、Scope、完了条件 |
| v0.16.0リリース定義 | v0.16.0 Real-site Rendering & Performance、Tailwind v4、CJK、image cache、差分AnimationのTheme、Scope、完了条件 |
| v0.17.0リリース定義 | v0.17.0 Browser-grade Web Compatibility、実framework corpus、media pipeline、incremental rendering、compositor、differential Gateの完了条件 |
| v0.18.0リリース定義 | v0.18.0 Browser-grade Resource Loading、非同期image commit、script lifecycle、priority、cache / cancel診断の完了条件 |
| v0.19.0リリース定義 | v0.19.0 CSS Layout 2026、Flow / Table / Flex / Grid / Subgrid / Writing Mode / Sticky / Multi-columnと仕様適合の完了条件 |
| v0.20.0リリース定義 | v0.20.0 Real-World CSS Compatibility、7サイトcorpus、P0 / P1 gate、live smokeの完了条件 |
ローカルで、CIと同等の検査を実行できます。
make ci主な検査項目は次のとおりです。
go test -race ./...- 最低Test Coverage 70%
go vet- Staticcheck
- actionlint
- govulncheck
- 不可視Unicode、未承認Binary、Editor Extension recommendationの検査
- Installer、Release成果物、Docker、文書の検証
Go Modules、GitHub Actions、Docker base imageの依存関係は、Dependabotで週次確認します。Pull Requestでは追加されたHigh/Criticalの既知脆弱性をDependency Reviewで遮断します。
v0.20.0はRuntime workerのdefault-deny境界を維持し、font fallback、visual raster、gradient / filter surfaceにもglyph 50,000件、画像16 megapixel、artifact 1件16 MiB・corpus合計256 MiBの上限を適用します。Layoutも実行時間、box / fragment、recursion、line / float、column balancingへ上限を設けます。Navigation、Page close、Engine切替では進行中resourceをcancelしますが、実験的browserとして未知のnative/runtime/decoder脆弱性への完全耐性は保証しません。外部Go sourceは引き続きtrusted loopbackだけに限定されます。Growseを権限の高いユーザーや機密profileで実行しないでください。
脆弱性の非公開報告方法、サポート対象、通信とResource LoadingのSecurity BoundaryはSECURITY.mdを参照してください。
v0.20.0のようなVersion tagをpushすると、GitHub Actionsが次の成果物、SHA-256 checksum、SPDX JSON SBOMをGitHub Releaseへ公開します。ArchiveとSBOMにはGitHub Artifact Attestation、Docker imageにはBuildKitのSBOMとSLSA Provenanceを付与します。
- Linux amd64
- macOS Intel
- macOS Apple Silicon
- Windows amd64
- Linux amd64 Docker imageのVersion tagと
latesttag
Archiveには、Growse本体、Runtime workerとして再起動する同一検証済み実行ファイル、すべてのDemoを同梱します。Gopher cursor imageは実行ファイルへ埋め込まれるため、別途assetを配置する必要はありません。
checksum、SBOM、Provenanceを使った成果物の検証手順は、SECURITY.mdのSupply Chain Securityを参照してください。
The Go Gopher was designed by Renée French.
The Go Gopher is licensed under the Creative Commons Attribution 4.0 License.