shithub: opossum


clone: git:// gits://
push: hjgit://
patches to:

Last commit

8423f45c – Philip – 2021-05-14T05:39:50-04:00
More DOM APIs, separated ES6 support


# Opossum Web Browser

Basic portable Web browser; only needs a Go compiler to compile.

The UI is built with

Still experimental and a lot of features are missing, see website for screenshots:

Supported features:

- rudimentary CSS/HTML5 support, large parts like float/flex layout are just stub implementations
- Server-side rendered websites
- Images (pre-loaded all at once though)
- experimental JS/DOM can be activated (very basic jQuery examples work)
- file downloads

# Install

## Plan 9

You can download a tarball with the binary at


Also `/sys/lib/tls/ca.pem` needs to be present for TLS to work. ca certs can be downloaded from the curl homepage:

hget > /sys/lib/tls/ca.pem

To compile the source Go 1.16 is needed. Probably `$GOPROXY` should be set to ``

cd cmd/browse
go run .

There are various command line options, visible with `-h`, most importantly to see errors:

go run . '-quiet=false'

(`-quiet=false` produces a lot of output, consider turning on scroll since processing waits for that...)

or all messages:

go run . '-quiet=false' '-debug=true'

`$font` is used to select the font.

## macOS


- Go
- Plan9Port

cd cmd/browse
go run .

# JS support

It's more like a demo and it's not really clear right now how much sandboxing
is really needed. A rudimentary AJAX implementation
is there though.

Use on your own Risk!

Mostly based on goja (ECMAScript 5.1) and
(DOM implementation in JS). Some sort of DOM diffing
is needed, also AJAX functions, `getComputedStyle` etc. are either missing or stubs.
Very simple jQuery based code works though, e.g. jQuery UI Tab view or the toggle buttons on There is also highly experimental ES6 support with Babel.

Try on Plan 9 with e.g.:

go run . '-experimentalJsInsecure=true' -startPage

or macOS etc.:

go run . -experimentalJsInsecure=true -startPage


- load images on the fly
- implement more parts of HTML5 and CSS
- create a widget for div/span
- clean up code, support webfs, snarf