A rudimentary web browser built in Go with the Fyne GUI framework. Based on exercises from https://browser.engineering.
- Supported URL Schemes:
http,https,file,data,view-source.about:blankis used as fallback.httpis default.filereads local files,datareads text content embedded directly into the url,view-sourcedisplays the raw HTML code sent by the server.
- Redirect handling: Upto 5 redirects for 3xx codes.
- Error handling: 4xx and 5xx codes are handled with user feedback.
- Lexer: Custom lexer for tokenizing server response. Tokenization is done on the tags (no support for classes or ids).
- Basic HTML styling:
<b>,<strong>,<i>,<pre>,<code>,<em>,<h1>,<a>tags are rendered with styling. - Image rendering: Very basic, sizing not implemented yet.
- Browsing history: Stored as
history.jsonin the program/application directory. - Theming: Light, dark, custom.
- Go required (install)
- Fyne also requires a C compiler for development. The compiler choice will vary depending upon the operating system. For more details refer to Fyne docs
git clone https://github.com/4rnv/Miki.gitcd Mikigo run cmd/miki/main.go
Alternatively, you can build a binary using the go build command.
go build -ldflags="-H=windowsgui" -o bin/miki.exe ./cmd/miki(Windows)go build -o bin/miki ./cmd/miki(MacOS and Linux)
- Hyperlinks should take you to that page
- Ctrl+O to open local files (.txt at least)
- Support for compressed content
- Caching and reusing connections
- Javascript support
