

GitHub - psilva261/opossum: Rudimentary web browser written in Golang
source link: https://github.com/psilva261/opossum
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Opossum Web Browser
Basic portable Web browser; only needs a Go compiler to compile. Optimized for use on 9front and 9legacy, supports plan9port and 9pi as well.
The UI is built with https://github.com/mjl-/duit
Still experimental and a lot of features are missing.
Supported features:
- rudimentary HTML5 and CSS 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
# Setup TLS
hget https://curl.haxx.se/ca/cacert.pem > /sys/lib/tls/ca.pem
# Create mountpoints (needed on 9legacy)
mkdir /mnt/opossum
mkdir /mnt/sparkle
Binary
Binaries for amd64 and 386 can be downloaded from https://psilva.sdf.org/opossum.html
Compile from Source
Set $GOPROXY
to https://proxy.golang.org
and then:
go install ./cmd/opossum
Command line options:
-h help
-v verbose
-vv print debug messages
-jsinsecure activate js
-cpuprofile filename create cpuprofile
(-v and -vv produce a lot of output, consider turning on scroll since processing waits for that...)
$font
is used to select the font. Very large fonts will set dpi to 200.
macOS
Requirements:
- Plan9Port
go install ./cmd/opossum
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!
JS implementation forked from goja (and thus otto). Since the implementation is very limited anyway, DOM changes are only computed initially and during click events. A handful of jQuery UI widgets work though, e.g. jQuery UI Tab view https://jqueryui.com/resources/demos/tabs/default.html. There is also highly experimental ES6 support with Babel. (https://github.com/psilva261/6to5)
Install the js engine:
cd ..
git/clone https://github.com/psilva261/sparklefs
cd sparklefs
go install ./cmd/sparklefs
On 9legacy also the folders /mnt/opossum
and /mnt/sparkle
need to exist.
Then it can be tested with:
opossum -jsinsecure https://jqueryui.com/resources/demos/tabs/default.html
- load images on the fly
- implement more parts of HTML5 and CSS
- create a widget for div/span
- clean up code, support webfs, snarf
Recommend
-
146
Gin Web Framework Gin is a web framework written in Go (Golang). It features a martini-like API with performance that is up to 40 times faster thanks to httprouter....
-
53
README.md
-
53
README.md Nemesis: Studying microarchitectural timing leaks in rudimentary CPU interrupt logic This repository contains the source code accompanying ou...
-
56
Synopsis NOTE: Org-roam builds upon Emacs and Org-mode, both of which are intricate tools that require time investment for mastery. This makes Org-roam less friendly for beginners, but extremely powe...
-
12
gogstash Logstash like, written in golang Download gogstash from github check latest version ...
-
47
README.md
-
6
Fail fast with Opossum circuit breaker in Node.js
-
10
GARCH and a rudimentary application to Vol Trading This post will review Kris Boudt’s datacamp course, along with introducing some concepts from it, discuss GARCH, present an application of it to volatility trading strategies, an...
-
3
Ddosify - High-performance load testing tool Features Protocol Agnostic - Currently supporting HTT...
-
5
Your browser lies: the web isn’t written in your native language Most webpages aren’t written in your native language; despite the entire web being available to you in your language. However, man...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK