# Links (web browser)

Links is a free software text and graphical web browser with a pull-down menu system. It renders complex pages, has partial HTML 4.0 support (including tables, frames, and support for UTF-8), supports color and monochrome terminals, and allows horizontal scrolling.
It is intended for users who want to retain many typical elements of graphical user interfaces (pop-up windows, menus, etc.) in a text-only environment.
The original version of Links was developed by Mikuláš Patočka in the Czech Republic. His group, "Twibright Labs", later developed version 2 of the Links browser, which displays graphics, and renders fonts in different sizes (with spatial anti-aliasing), but no longer supports JavaScript (it used to, up to version 2.1pre28). The resulting browser is very fast, but does not display many pages as intended. The graphical mode works even on Unix systems without the X Window System or any other window environment, using either SVGAlib or the framebuffer of the system's graphics card.

## Graphics stacked

The graphics stack varies from a stack typically used by a web browser. The fonts displayed by Links are not derived from the system, but compiled into binary as grayscale bitmaps using the Portable Network Graphics (PNG) format. This allows the browser to be distributed as a single executable file, independent of the system's installed libraries. However, this raises the size of the executable to approximately 5 MB. The fonts are anti-aliased without hinting, and for small line pitches, artificial sharpening is used to increase legibility. Sub-pixel sampling is used to further improve legibility on LCD displays. These techniques allow Links to use anti-aliased fonts when libraries for rendering them are not available.
All graphic elements (images and text) are first converted from a given gamma space (according to known or assumed gamma information in PNG, JPEG, etc.) through known user gamma setting into a 48 bits pixel photometrically linear space where they are re-sampled with bilinear re-sampling to the target size, possibly taking aspect ratio correction into account. Then the image data are passed through a high-performance dithering engine, which is used regardless of monitor bit depth, i.e., it is still used with 24 bits per pixel color. This implementation of a Floyd-Steinberg dithering engine avoids time expensive calculations by considering the gamma characteristics of the monitor, using 768 KiB of dithering tables. A technique similar to self-modifying code, called function templates, is used to maximise the speed of the dithering engine without using assembly language optimization.
Scaled down images also use sub-pixel sampling on LCD to increase the level of detail.
This processing is used to provide realistic up and downsampling of images, and photorealistic display regardless of the monitor's gamma, without color fringing caused by 8-bit gamma correction built into the X server.

## Forks
### ELinks

Experimental/Enhanced Links (ELinks) is a fork of Links led by Petr Baudis. It is based on Links 0.9. It has a more open development and incorporates patches from other Links versions (such as additional extension scripting in Lua) and from Internet users.

### Hacked Links

Hacked Links is another version of the Links browser which has merged some of Elinks' features into Links 2.
Andrey Mirtchovski has ported it to Plan 9 from Bell Labs. It is considered a good browser on that operating system, though some users have complained about its inability to cut and paste with the Plan 9 snarf buffer.
As of April 2016, the last release of Hacked Links is that of July 9, 2003, with some further changes unreleased.

### Other

Links was also ported to run on the Sony PSP platform as PSPRadio by Rafael Cabezas with the last version (2.1pre23_PSP_r1261) released on February 6, 2007.
The BeOS port was updated by François Revol who also added GUI support. It also runs on Haiku.