amigazen AWeb 3 AmigaPython ToolKit unsui FastForward Engi Zen
Voyager V3 3.5
The classic web browser for Amiga

[GitHub] [About] [Features] [FAQ]


Voyager V3

This is Voyager V3 3.5, the classic web browser for Amiga, rebuilt from the GPL source drop of VaporWare’s Voyager available at original Voyager developer Zapek’s GitHub.

Current Release Voyager V3 3.5.3

GitHub




About Voyager V3 3.5

Voyager is one of the classic Amiga web browsers of the late 1990s, alongside IBrowse and AWeb. Oliver Wagner’s VaporWare started it in 1995 with David “Zapek” Gerber co-developing with him. It is a MUI application with an HTML 3.2 layout engine (with work in progress HTML 4 features), a JavaScript 1.3 / ECMA-Script bytecode compiler and interpreter, a plugin API, and HTTPS through a VSSL plugin: voyager_ssl_amissl.vlib is used when AmiSSL is installed, but if AmiSSL is not available, the plugin voyager_ssl.vlib will instead use AmiTLS.library, a new TLS implementation built around BearSSL, also from amigazen project.

The original code also targeted the ‘Metabox CaOS’ set top box device, and MorphOS. This version 3.5 restoration targets the classic 68k SAS/C line for Amiga only, but the source code retains support for those build configurations.

The last widely shipped commercial release was Voyager 3.2 (16 April 2000). An alpha release 3.3 followed in August 2000. The source in this tree is derived from the later “3.4” GPL drop (copyright through 2003, with CVS timestamps into 2004–2005) released by David Gerber in 2024.

This project’s aim is to take that GPL tree and produce a Voyager that:

• Builds with SAS/C against the ToolKit standard for Amiga SDK configuration
• Runs again on classic 68k Amiga as a Workbench application
• Talks to current TCP/IP stacks via bsdsocket.library
• Loads HTTPS using a VSSL plugin backed by modern SSL libraries rather than the historical OpenSSL 0.9 tree


Fixes required to compile, link, start, layout, draw, network, and exit cleanly are in scope.

New in Voyager V3 3.5

• HTTPS via AmiSSL (if installed) or AmiTLS (included in the release package).
• Printing completed: Print dialog, menu, toolbar, and ARexx Print ASK; text to PRT:; graphical printer.device bands; TurboPrint when Turboprint: is assigned.
• UTF-8 HTML (MIME charset or META) mapped onto the OS3 Latin-1 charmap, including named and numeric entities that fit Latin-1.
• Default User-Agent is Firefox 4.0.1 on Windows 7. Some CDNs answer 403 when a Firefox-shaped agent also contains an Amiga token. The Spoof menu can still identify as Voyager.
• No vapor_toolkit.library and no keyfile required. All functionality is now unlocked.
• PNG alpha masks no longer crash the blit.
• Wide tables finish layout instead of hanging or corrupting the page.
• The GPL 3.4 source from David Gerber has been refactored to replace missing files, fix build errors and compile with the latest NDK 3.2 for classic Amiga.

See CHANGELOG.md for the full 3.5.3 change log and the historical VaporWare Voyager 3.x changes.


HTML Standards Support

Zapek documented Voyager as HTML 3.2, with later tags marked +. The layout sources still say “V HTML4 Layout engine”. CSS was work in progress: <STYLE> is hidden (historically scanned for JavaScript); parse_css() in this tree is a stub.

HTML Element Support

Element Support Notes
Document Structure
HEADYesAuthor list; tag itself is ht_dummy (content still parsed)
BODYYesBGCOLOR, TEXT, LINK, ALINK, VLINK, BACKGROUND
TITLE, BASE, ISINDEXYes 
METAYeshttp-equiv: refresh, pragma no-cache, content-type
LINKNoAuthor: ignored, not important; not tokenized
STYLENoAuthor: hidden, searched for JS. This tree skips the inner text (TOFIX); CSS is not applied
SCRIPT / NOSCRIPTYesJavaScript; NOSCRIPT+
Text Formatting
H1–H6Yes 
PYesleft, right, center, middle+
BRYesclear=left/right/all
HRYeswidth, size, noshade, color
PRE, XMPYes 
LISTINGNoAuthor: not handled, obsolete; tokenized, no layout
PLAINTEXTNoAuthor: not handled, obsolete
DIV, CENTERYes 
SPANNoTokenized no-op in this tree; not on the author’s HTML 3.2 list
NOBRYesNetscape+
WBRNo 
ADDRESSNoAuthor: no special action
BLOCKQUOTENoAuthor: ignored, useless
QNoHTML 4
Text Style
TT, I, B, U, STRIKE, S+Yes 
INS+YesUnderline
DELYesStrikethrough (this tree; not on the author’s short list)
BIG, SMALLYes 
SUB, SUPNoAuthor: ignored; not tokenized
EM, STRONG, DFN, CODE, SAMP, KBD, VAR, CITEYes 
FONTYescolor, size, face+
BASEFONTYes 
ABBR, ACRONYM, BDONoHTML 4
BLINKNo 
Lists
UL, OL, LIYes 
DL, DDYes 
DTNoAuthor: not handled (this tree still shares the LI case)
DIR, MENUNoAuthor: ignored, useless
Links and Images
AYeshref, title, target+, accesskey+; rel/rev unused
IMGYessrc, alt, align, width, height, hspace, vspace, border, ismap, usemap, lowsrc+
MAP, AREAYesshape, href, target, coords, accesskey+
Tables
TABLEYesbgcolor+, background+, cellpadding, cellspacing, border, width, height+, border colors+, align
TRYesbgcolor+, background+, valign, align
TD / THYesbgcolor+, background+, width, height, rowspan, colspan, valign, align, nowrap
CAPTIONNoTokenized, no layout; not on the author’s list
THEAD, TBODYNoToken lines commented out
TFOOT, COL, COLGROUPNoHTML 4 table model
Forms
FORMYesaction, target, method, enctype
INPUTYestext, password, checkbox, button+, radio, submit, image, reset, file, hidden; name, value, checked, size, maxlength, src, align
SELECTYessize, multiple, disabled
OPTIONYes 
OPTGROUPNoHTML 4
TEXTAREAYesdisabled, rows, cols, readonly+
BUTTONYesElement present in the GPL tree (author listed INPUT type=button+)
LABEL, FIELDSET, LEGENDNoHTML 4
Frames
FRAMESET / FRAMEYes+
NOFRAMESYes+
IFRAMENo 
LAYER, ILAYERNoNetscape 4
Embedded Content
APPLETNoAuthor: not supported, no JVM
PARAMNoTokenized, no layout
EMBEDYes+ type, src, width, height, hspace, vspace, border, align
NOEMBEDYes+
OBJECTNo 
BGSOUND, MARQUEENoInternet Explorer
<!-- -->Yes 


HTML Features

Feature Support Notes
Character / numeric entitiesYesNamed, &#nnn;, hex; UTF-8 bytes mapped to Latin-1 / OS3 charmap
Charset (Content-Type / META)Partialutf-8 / utf8 detected; decoded to the OS3 charmap, not Unicode fonts
Nested tablesYesMajor 3.x layout work
File uploadYesINPUT type=file / HTTP POST
FramesetsYes 
Inline framesNoNo IFRAME
Client-side image mapsYes 
PrintingYesPrint dialog; text to PRT:; graphical printer.device bands; TurboPrint TPEXT when Turboprint: is assigned
CSS 1 / CSS 2NoNever a Voyager product feature
Inline style= / class= stylingNoid used for JS lookup
XHTML 1.0No 
data: URLsNo 


HTTP, FTP, mail, SSL

Author list, still present in this tree unless noted.

Feature Support Notes
HTTP/1.1YesFalls back to 1.0 when the peer fails 1.1
Content negotiationYesAccept / Accept-Language
Persistent connections (keep-alive)YesNot used on SSL in this tree (trying11 is off for SSL)
ResumeYesRange: bytes=
Uploads / POSTYes 
ProxiesYesIncluding Proxy-Authorization
Cache controlYesExpirations, If-Modified-Since, pragma no-cache
AuthenticationYesBasic
Language tagsYes 
CookiesYes 
User-Agent spoofingYesFor broken sites. The 3.5.3 default (spoof off) is Firefox 4.0.1 on Windows 7, so CDNs do not reject requests
FTP anonymous and normal loginYes 
FTP persistent connectionsYesPrefs keepftp
FTP resumeYesREST
FTP proxiesYes 
Advanced LIST / ls -l parsingYes 
EPLFYes 
SMTPYesSimple mail from mailto: / form mail
SSL TLS 1.2+YesThe OpenSSL 0.9 VSSL tree is historical. 3.5.3 prefers AmiSSL 5.27 (OpenSSL 3, TLS 1.2, SNI) and falls back to AmiTLS if AmiSSL is not installed


Cache, images, plugins, editor

Feature Support Notes
Variable memory cacheYesImages kept while memory lasts
Variable disk cacheYesAutomatic cleanup; no index, always consistent (author)
Inline image decodeYesGIF (animated / progressive), JPEG, PNG (alpha), XBM
HTML source editorYesInternal view/edit with HTML tag highlighting (sourceview / Textinput)


JavaScript Support

Gerber documented JavaScript 1.3 / ECMA-Script. The engine compiles source to JSOP_* bytecode (js_compile / Bison js.y) and interprets it (js_interpret). That is Netscape 1.2/1.3 (strict equality, switch, RegExp, for/in, with). It is not JavaScript 1.5 / ECMAScript 3.

JavaScript Language Features

Feature Support Notes
Data Types
NumbersFullInteger and floating-point
StringsFullString literals and operations
BooleansFulltrue and false
null, undefinedFullNull and undefined values
ObjectsFullObject properties and constructors
ArraysFullArray objects and methods
FunctionsFullFunction objects
Operators
ArithmeticFull+, -, *, /, %, ++, --
ComparisonFull==, !=, ===, !==, <, >, <=, >=
LogicalFull&&, ||, !
BitwiseFull&, |, ^, ~, <<, >>, >>> (JSOP_OP_GGG)
AssignmentFull=, +=, -=, etc.
TernaryFull? : conditional operator
Control Flow
if/elseFullConditional statements
while, do/whileFullLooping constructs
for, for/inFullIteration
switchPresentIn the GPL parser
break, continueFullLoop control
returnFullFunction return values
Functions
Function declarationsFullNamed functions, function expressions, Function objects
this keywordFullContext object reference
new operatorFullObject instantiation
typeof, delete, voidFullIn js.y
withFullPushes an object context
var declarationsFullVariable declarations
try / catch / finallyNoNot in the lexer or parser
instanceofNo 
in (as prop in obj)NoTOKEN_IN is only used for for/in
Labeled break / continueNo 
constNoNetscape 1.5 extension


Browser Object Model (BOM)

Object Support Notes
windowFullTop-level window (htmlwin)
window.open() / close()FullWindow control as implemented in 3.x
window.alert(), confirm()FullDialogs
window.prompt()NoNot on the window property table
window.setTimeout() / setInterval()FullAlso clearTimeout / clearInterval
window.statusFullStatus bar text
window.defaultStatusNo 
window.locationFullLocation object
window.historyFullHistory list
window.navigatorFullNavigator object
window.documentFullDocument / HTML view
window.framesFullFrame access
window.openerNoInternal f_opener only; not a JS property
window.parent / self / topFull 
screenFullGlobal screen object (js_screen.c), not a window.screen property
documentPartialwrite/writeln, open/close, cookie, title, URL, referrer, lastModified, domain, all (alias for the document)
document.bgColor, fgColor, linkColor, alinkColor, vlinkColorNo 
document.bodyNo 
document.applets[]No 
document.getElementById()PartialLooks up id via MM_JS_FindByID; not a DOM Level 1 tree API
document.getElementsByTagName() / getElementsByName()No 
document.createElement() / createTextNode() / appendChild()NoNo DOM tree
innerHTML / outerHTMLNo 
JavaScript entities (&{...};)NoListed as incomplete in the 3.2 readme; still absent
document.forms[]FullForm collection
document.images[]FullImage collection
document.links[] / anchors[]FullSame collection of anchors
document.embeds[] / plugins[]FullEmbed collection
formFullForm object, elements[], submit() / reset()
form elementsFullText, password, textarea, select, checkbox, radio, button, hidden
locationFullhref, URL parts, reload/replace as implemented
historyFullback(), forward(), go()
navigatorFullappName, appCodeName, appVersion, userAgent, platform, plugins, mimeTypes, javaEnabled, and others on js_navigator.c
plugin / mimeTypeFullPlugin and MIME type objects
Image() constructorNo 
Option() constructorNo 
XMLHttpRequestNoNot an HTML 4 DOM feature; absent here


JavaScript Built-in Objects

Object Support Notes
StringFullIncluding match, replace, search, split, concat
NumberFullNumber object
BooleanFullBoolean object
ArrayFulljoin, reverse, sort, concat, slice, splice, push, pop, shift, unshift
MathFullMathematical functions and constants
DateFullLocal and UTC getters/setters
ObjectFullBase object type
FunctionPartialarguments, arity, caller
Function.prototype.apply / callNo 
RegExpPresentjs_regexp.c; String match / replace / search / split use it
Error / throwNo 


JavaScript Event Handlers

Event Handler Support Notes
onClick, onDblClickFullWired in layout_parse.c
onLoad, onUnloadFull 
onSubmit, onResetFull 
onChange, onSelectFull 
onFocus, onBlurFull 
onMouseOver, onMouseOutFull 
onMouseDown, onMouseUp, onMouseMoveFull 
onKeyDown, onKeyUpFull 
onKeyPressNoNot in the event-name table
onError, onAbortFull 
onResize, onMoveFullNames are registered; behaviour is period Netscape
addEventListener / attachEventNoNo DOM Events


JavaScript Limitations

The 3.2 readme is out of date on SCRIPT SRC (that path works in this tree). Remaining gaps for an HTML 4 generation browser are the No rows above: no CSS, no DOM tree, no try/catch, no XMLHttpRequest.

Voyager can append JavaScript errors to JSERROR.LOG in the program drawer when that preference is enabled.


Roadmap

The last public VaporWare boxed product release was Voyager 3.2 in 2000. A limited 3.3 line followed in CVS (public betas, then 3.3.126 / MorphOS), then 3.4.x. Source was later published under the GNU GPL by David Gerber.

Version 3.5.3 is the current public amigazen project release. It is derived from that GPL tree. The goals are:

• Ensure Voyager can be built with supported SDKs (SAS/C, NDK, MUI, CyberGraphX, ToolKit)
• Make the application run from start to finish correctly including loading and rendering web pages, and allowing application preferences to be changed
• Replace runtime dependencies that cannot be satisfied in 2026 (keyfile / vapor_toolkit.library checks, Miami and MiamiSSL)
• Package a Workbench drawer with binaries, MUI classes, plugins, certificates, and documentation
• Keep behaviour aligned with Voyager 3 as users knew it


Frequently Asked Questions

What is the aim of this Voyager project?
The GPL release of that code was a generous act. However, the tree as originally published did not build or run out of the box with standard Amiga tools. The job of this Voyager 3.5 release is to restore Voyager V3 so it can be compiled, installed, and used again, with some maintenance also possible.

Does this Voyager work on Workbench 3.1, 3.5 or 3.9?
The 3.5.3 68k build is aimed at classic Amiga with MUI 3.8 (or compatible MUI implementations). It needs bsdsocket.library for network access. cybergraphics.library is also supported when present.

Tear-off control panels from Voyager 3 are disabled in this version 3.5 because TearOffPanel.mcc is not clean of Enforcer hits and the source code is not available for maintenance.

Will Voyager support modern websites?
No more than Voyager 3 ever did. HTML5, CSS3, WebAssembly, WebGL, and the Chromium/WebKit/Gecko engines are a different class of software. Classic Amiga Voyager remains a 1990s / early-2000s browser. Sites that still speak that dialect — including many Amiga sites and archive/proxy services — are the intended target.

What happened to VaporWare Voyager after 3.2?
Voyager 3.2 was the last full public product release (16.4.2000). Development continued in CVS; the GPL sources in this repository are that later tree. Historical notes remain on zapek.com. VaporWare automatic software updates and keyfile infrastructure dependencies have been removed in order to make this 3.5 release standalone and available to all.

Does Voyager work with MUI alternatives like Zune?
Voyager relies on certain undocumented functions and internal data structures of MUI that mean it will fail on alternative MUI implementations such as AROS Zune.

The only MUI implementation Voyager works with apart from the original MUI 3.8, is mushin also by amigazen project. This fork of Zune, intended for use on classic Amiga, has been specially modified to use the same internal data structures and undocumented APIs that Voyager depends upon.

Will this version be available for OS4, AROS or MorphOS?
The GPL tree already contains MorphOS conditionals. The first priority is a stable classic 68k SAS/C build. Native ports can be revisited once that line is solid. A 68k binary may run on OS4 in emulation the same way other 68k MUI software does.

Can I contribute to the new Voyager?
Yes please! Whether code, testing or translations and documentation, all contributions are welcome and will remain free and open source in the spirit and letter of the LICENSE.md. See also CONTRIBUTING.md.


Contact

GitHub: https://github.com/amigazen/Voyager
Web: http://www.amigazen.com/voyager/ (Amiga browser compatible)
Email: aweb@amigazen.com


Acknowledgements

Amiga is a trademark of Amiga Corp.

Original Voyager by Oliver Wagner, with David Gerber, Jon Bright, Matt Sealey, Simone Tellini, Jerome Fisher, and the rest of the VaporWare Voyager team, released under the GNU GPL.

MUI by Stefan Stuntz. SpeedBar by Simone Tellini. Historical TearOff classes by Szymon Ulatowski. HTTPS uses AmiSSL when it is installed, and AmiTLS otherwise.

Voyager V3 is forever dedicated to the memory of Oliver “Olli” Wagner.
© 2026 amigazen project. Web page content licensed under Creative Commons BY-SA 4.0 | GitHub |

Amiga is a trademark of Amiga Corp.