Giter Club home page Giter Club logo

opossum's Introduction

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)
  • TLS
  • 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:

  • Go
  • 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

TODO

  • 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 Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.