Recent from talks
Contribute something
Nothing was collected or created yet.
Dillo
View on Wikipedia| Dillo | |
|---|---|
Dillo 3.1 displaying a Wikipedia article | |
| Original author | Jorge Arellano Cid |
| Developer | Rodrigo Arias Mallo |
| Initial release | December 1999 |
| Stable release | 3.2.0[1] |
| Repository | |
| Written in | C and C++ |
| Operating system | Linux, BSD, macOS, FreeDOS |
| Available in | English |
| Type | Web browser |
| License | GPL-3.0-or-later |
| Website | https://dillo-browser.org/ |
Dillo is a minimalistic web browser particularly intended for older or slower computers and embedded systems.[2] It supports only plain HTML/XHTML (with CSS rendering) and images over HTTP and HTTPS; scripting is ignored entirely.[2][3] Current versions of Dillo can run on Linux, BSD, macOS, IRIX[4] and Cygwin.[5] Due to its small size, it is a popular choice for light-weight Linux distributions. Dillo is free software, released under the GNU GPL-3.0-or-later.[6]
Chilean software engineer Jorge Arellano Cid conceived the Dillo project in late 1999,[7] publishing the first version of Dillo in December of that year.[8] His primary goal in creating Dillo was to democratize access to information. Arellano Cid believed that no one should have to buy a new computer or pay for broadband in order to enjoy the World Wide Web.[9] To this end, he designed Dillo to be small, fast, and efficient, capable of performing well even on an Intel 80486 CPU with a dial-up Internet access.[2][10]
Development
[edit]Dillo was originally written in the C programming language with the GTK+ GUI toolkit. The first versions were based on an earlier browser called Armadillo, hence the name.[11]
Dillo is funded by private donations;[12] efforts to obtain public grants and corporate sponsors have been unsuccessful.[13] Lack of funding led to a slowdown in development in 2006, and a complete stop in 2007.[6][14] The project restarted again in 2008 and two months later received a €115 donation from DistroWatch.[6][15]
Dillo 2 was written with both C and C++ components and the Fast Light Toolkit (FLTK),[8] and was released on October 14, 2008.[6] Text antialiasing, support for character sets other than Latin-1, HTTP compression capability, and improved page rendering were all added.[8] The move to FLTK from GTK+ also removed many of the project's dependencies and reduced Dillo's memory footprint by 50%.[6]
In 2011, Dillo 3.x was released, now using FLTK 1.3. According to the changelog, this change was partly driven by the absence of an official FLTK 2 release, which had previously prevented Dillo 2 from being included in lightweight distributions where it would have otherwise been suitable.
Development stalled in 2016 due to the death of the main developer of the rendering engine, Sebastian Geerken. Arellano Cid made his last post to the development mailing list in 2019.[16][17]
The original[18] domain had expired in June 2022.[19] Developers had lost access to it and a Wordpress zombie lookalike is operating without their oversight ever since.
Dillo 3.1.x was released in 2024, after development was restarted in December 2023 by Rodrigo Arias Mallo.[20]
Features
[edit]Features of Dillo include bookmarks, tabbed browsing, and support for JPEG, PNG (including alpha transparency[21]), GIF[22] and SVG images.[23] Partial support for CSS was introduced in release 2.1. Settings such as the default fonts, background color, downloads folder, and home page are customizable through configuration files.[24][25] Cookies are supported but disabled by default due to privacy concerns.[26] While most web browsers retain the web cache and history after the program is closed, Dillo automatically clears them to improve both privacy and performance.[27]


A developer tool called the "bug meter" is provided in the lower-right corner. When clicked, it displays information about validation problems, such as unclosed tags, that Dillo found in the web page.[28] Unlike most browsers, Dillo does not have a quirks mode to improve compatibility with web pages that use invalid HTML. Instead, Dillo processes all web pages according to the published web standards.[29]
In 2003, two Linux enthusiasts successfully ran Dillo on an Intel 486 processor and demonstrated that even with such meager hardware, Dillo could render Home - BBC News in 10–15 seconds.[30] Furthermore, Dillo can run on a variety of software platforms, including Linux, BSD, Solaris, macOS, MS-DOS compatible operating systems,[31] and some handheld devices.[5] However, Dillo's developers have made little effort to make the browser work on Microsoft Windows. Arellano Cid stated that Windows goes against Dillo's goal of democratization by artificially increasing hardware requirements and software costs.[32] Nevertheless, Dillo has been reported to work on Windows via Cygwin.[33]
Dillo does not support JavaScript, Java, Flash, right-to-left text, or complex text layout.[22][34] Support for frames is also very limited; Dillo presents a link to each frame to allow the user to view them one at a time.[35]
Forks
[edit]Dillo-Win32 was a project to port Dillo to Windows which is now defunct.[36] D+ browser or Dplus continues where Dillo-Win32 left off, forked from the final Dillo-Win32 release (3.0p9), it does not attempt to maintain upstream compatibility with Dillo. The most recent version is 0.5b (Oct 15, 2013). [37]
DilloNG is a fork hosted on GitHub which moved the code from Mercurial while adding new features like a speed dial main page, support for opening videos in an external video player[38] and merged some previously published fixes. It was last updated in 2021.[39]
A fork called Dillo-browser[40] appeared in 2019 forked from the then-current version of DilloNG. It stalled until 2023 when its development resumed and is ongoing as of 2024.
Dillo+ (Dillo-Plus) started in 2023 based on Dillo 3.0.5 source code found in the OpenBSD 6.8 package.[41] It had applied numerous patches from DilloNG and added support for rendering Gopher, Gemini and markdown pages, reader mode and extended CSS support.[42] A new Python scripting system was introduced with modules for rendering RSS, EPUB, public Telegram channel logs and zip file contents.[43] It is still maintained as of 2024.[44]
Reception
[edit]Reviews of Dillo have praised its extraordinary speed, but noted that this speed comes at a price.[22][45][46] The most visible cost is Dillo's inability to display complex web pages as they were meant to be. A 2008 review by Linux.com commented that Dillo's user interface may be "intimidating" for new users, and pointed out the scarcity of plug-ins for Dillo.[24] In all, Dillo's global usage share is less than one hundredth of one percent.[47]
Dillo is, however, the browser of choice in several space-conscious Linux distributions, such as Damn Small Linux,[48] Feather Linux,[49] VectorLinux,[50] antiX[45] and Mustang Linux.[45]
See also
[edit]References
[edit]- ^ "Dillo release 3.2.0". Retrieved 23 January 2025.
- ^ a b c Wayner, Peter (19 October 2010). "Top 10 specialty Web browsers you may have missed". InfoWorld. p. 3. Retrieved 28 October 2010.
- ^ Arellano Cid, Jorge (1 July 2002). "Introducing Dillo, a lightweight embeddable browser". LinuxDevices.com. Archived from the original on 2009-03-09. Retrieved 14 February 2009.
- ^ "Building Dillo3 for IRIX, notes". forums.irixnet.org. Retrieved 2025-11-17.
- ^ a b "Dillo Web Browser :: Compatibility". University of Bremen. 16 November 2008. Archived from the original on 24 August 2011. Retrieved 13 February 2009.
- ^ a b c d e "Dillo Web Browser :: Home Page". University of Bremen. 7 December 2008. Archived from the original on 28 May 2007. Retrieved 12 February 2009.
- ^ Arellano Cid, Jorge. "Personal info for Jorge Arellano Cid". Archived from the original on 24 November 2015. Retrieved 12 February 2009.
- ^ a b c Nieradzik, Tim (19 April 2009). "dillo:ChangeLog". Mercurial. Archived from the original on 6 November 2018. Retrieved 21 April 2009.
- ^ Arellano Cid, Jorge (December 2002). "Cuál sería el principal uso de Dillo?" (in Spanish). tux.cl. Archived from the original on 13 April 2003. Retrieved 13 February 2009. English translation available.
- ^ Arellano Cid, Jorge (December 2002). "Básicamente, de que se trata el proyecto Dillo?" (in Spanish). tux.cl. Archived from the original on 13 April 2003. Retrieved 13 February 2009. English translation available.
- ^ Arellano Cid, Jorge (31 December 1999). "Home page (ASCII version)". SourceForge.net. Retrieved 21 April 2009.
- ^ "Dillo Web Browser :: Donations". University of Bremen. 14 October 2008. Retrieved 13 February 2009.
- ^ "Embeddable browser project hits milestone release, seeks funding". LinuxDevices.org. 19 February 2004. Archived from the original on 16 February 2009. Retrieved 13 February 2009.
- ^ Arellano Cid, Jorge (August 2008). "Dillo is eight years old!". Archived from the original on 2012-02-20. Retrieved 12 February 2009.
- ^ Martin, Caitlyn (1 December 2008). "DistroWatch.com News". DistroWatch Weekly. Retrieved 13 February 2009.
- ^ Proven, Liam (7 May 2024). "Lightweight Dillo browser springs back to life, still doesn't care about JavaScript". The Register. Situation Publishing. Retrieved 4 June 2025.
- ^ Posch, Maya (11 May 2024). "The Minimalistic Dillo Web Browser Is Back". Hackaday. Retrieved 4 June 2025.
- ^ "Dillo Web Browser :: Home Page". Archived from the original on 2022-05-18.
- ^ "Dillo.org". Archived from the original on 2022-06-02.
- ^ Nestor, Marius (6 May 2024). "Dillo 3.1 Open-Source Web Browser Released After 9-Year Hiatus". 9to5Linux. Retrieved 4 June 2025.
- ^ Roelofs, Greg (17 May 2008). "PNG-supporting Browsers". SourceForge. Retrieved 13 February 2009.
- ^ a b c Arndt, Matthias (June 2002). "Dillo--a Web Browser as Fast as Lightning". Archived from the original on 15 February 2009. Retrieved 13 February 2009.
- ^ "Dillo release 3.2.0". Dillo Website. 2025-01-18. Retrieved 4 June 2025.
- ^ a b Byfield, Bruce (5 November 2008). "Dillo 2.0 is fast, but limited". Linux.com. Retrieved 13 February 2009.
- ^ "Sample dillo initialization file". University of Bremen. Archived from the original on 26 December 2017. Retrieved 13 February 2009.
- ^ "Q: How do I enable cookies?". Dillo Web Browser :: Frequently Asked Questions. University of Bremen. 15 January 2009. Archived from the original on 9 May 2008. Retrieved 11 February 2009.
- ^ "Dillo Web Browser :: Funding Presentation :: Advantages". University of Bremen. Retrieved 13 February 2009.
- ^ "Dillo Web Browser :: About Dillo's Bug Meter". University of Bremen. Retrieved 13 February 2009.
- ^ "Why do some pages look strange?". Dillo Web Browser :: Frequently Asked Questions. University of Bremen. 15 January 2009. Archived from the original on 9 May 2008. Retrieved 11 February 2009.
- ^ "Dam(sic) Small Linux on retro hardware -- 486SX and 486DX2". John Andrews. 19 October 2003. Retrieved 24 May 2009.
- ^ Downloads - nanox-microwindows-nxlib-fltk-for-dos - This project ports the Nano-X, Microwindows, NXlib and FLTK 1.3.0 libraries to the DOS operating system using DJGPP - Google Project Hosting. Code.google.com. Retrieved on 2013-12-09.
- ^ Arellano Cid, Jorge (December 2002). "El hecho de que Dillo este programado en C hace que sea portable a otros sistemas operativos, debería Windows ser su objetivo principal, ya que la "democratización de internet" tendría más impacto debido a la cantidad de usuarios de este s.o.?" (in Spanish). tux.cl. Archived from the original on 13 April 2003. Retrieved 13 February 2009. English translation available.
- ^ Vibber, Kelson (13 October 2008). "Installing Dillo on Cygwin". Archived from the original on 4 June 2011. Retrieved 13 February 2009.
- ^ "Q: Internationalization and Localization (i18n & l10n)". Dillo Web Browser :: Frequently Asked Questions. University of Bremen. 15 January 2009. Archived from the original on 9 May 2008. Retrieved 12 February 2009.
- ^ Krause, Ralph (26 February 2002). "Dillo, the GTK Web Browser". Linux Journal. Retrieved 13 February 2009.
- ^ "Project Status". Dillo-Win32. 5 December 2011. Archived from the original on 15 March 2012. Retrieved 1 January 2012.
- ^ "Official D+ Browser page". Retrieved 5 December 2013.
- ^ "README - w00fpack/dilloNG". GitHub.
- ^ "Commits - w00fpack/dilloNG". GitHub.
- ^ "Dillo, a multi-platform graphical web browser". GitHub.
- ^ "Working base from OpenBSD 6.8 pkg, switched from autotools to plain Makefiles". GitHub.
- ^ See [1] for coverage
- ^ "Overview". GitHub.
- ^ "Commits - crossbowerbt/dillo-plus". GitHub.
- ^ a b c Kingman, Henry (16 October 2008). "Lightweight, Linux-compatible browser evolves". DesktopLinux.com. Archived from the original on 14 February 2009. Retrieved 13 February 2009.
- ^ Tatham, Paul (15 September 2002). "Linux Web Surfing - Get Armed with Dillo". Archived from the original on 3 March 2016. Retrieved 13 February 2009.
- ^ "Browser Market Share". Net Applications. January 2009. Retrieved 12 February 2009.
- ^ "Damn Small Linux, Featured Desktop applications". John Andrews. Retrieved 11 February 2009.
- ^ "Feather Linux - About". BerliOS. Archived from the original on 27 January 2009. Retrieved 11 February 2009.
- ^ "Lesser known "mini" Linux runs from RAM". DesktopLinux.com. 25 January 2007. Archived from the original on 15 February 2009. Retrieved 13 February 2009.
External links
[edit]Dillo
View on GrokipediaDillo is a minimalist, open-source graphical web browser renowned for its exceptional speed and minimal resource footprint, making it ideal for resource-constrained environments such as older computers and embedded systems.[1][2]
Written primarily in C and C++ using the FLTK toolkit for its interface, Dillo eschews heavy dependencies like JavaScript engines to prioritize performance and security, rendering pages without executing scripts that could pose privacy or exploit risks.[3][4]
Originally initiated around 1999 by developer Antonio Larrosa, the project has endured for over 25 years through community efforts, including a recent revival that introduced enhancements like WebP image support and SVG rendering for mathematical formulas in version 3.2 released in early 2025.[5][6]
While lacking compatibility with modern dynamic web technologies, Dillo excels in displaying static content efficiently, supports protocols beyond HTTP such as Gopher and Gemini, and maintains a focus on personal privacy by avoiding data-tracking features common in mainstream browsers.[7][1]
History
Origins and Early Development
Dillo was initiated in late 1999 when a group of developers, led by Chilean software engineer Jorge Arellano Cid, forked the code from the Armadillo project, originally developed by Raph Levien as a lightweight browser derived from Gzilla.[5][8] Arellano Cid, a recent graduate of the Universidad Técnica Federico Santa María in Chile, sought to build a fast, resource-efficient graphical web browser capable of running on older hardware, addressing the limitations of contemporary browsers that demanded high-end systems.[9][10] The initial focus emphasized minimalism, with the browser written primarily in C and dependent on the GTK+ toolkit for its user interface.[1] The first releases of Dillo occurred in December 1999, marking the project's public debut with early alpha versions built on GTK 1.0.[1][5] These versions prioritized core browsing functionality, such as HTML rendering and basic navigation, while maintaining a small binary size under 230 KB to facilitate deployment on embedded systems and low-powered devices.[11] Development proceeded rapidly, with the project adopting the GNU General Public License (GPL) in March 2000 to encourage open collaboration.[5] By mid-2002, after over two years of iterative improvements, Dillo had matured sufficiently to be positioned as an embeddable browser component, demonstrating stability for integration into larger applications.[12] Early enhancements included refinements to the custom rendering engine for better HTML compliance and performance on constrained hardware, alongside initial support for features like bookmarks and inline images.[5] Arellano Cid led the core team, contributing to parsing and widget layers, while the project attracted collaborators interested in alternative lightweight toolkits.[10] A significant milestone came in October 2004 with version 0.8.3, which introduced HTTPS support via an update to the libgcrypt library, expanding secure browsing capabilities without bloating the footprint.[5] These developments solidified Dillo's niche as a viable option for users prioritizing efficiency over full modern web standards compliance.[7]Mid-Period Expansion and Stagnation
Following the initial GTK-based development in the early 2000s, Dillo experienced a phase of technical expansion centered on toolkit migration and core functionality improvements. In February 2005, primary developer Jorge Arellano Cid and contributor Sebastian Rogal presented Dillo at FOSDEM, highlighting its lightweight design and potential for embedded systems. By April 2005, progress on porting Dillo to FLTK 2 was underway, aiming for better performance and cross-platform compatibility over the aging GTK1 backend. This effort culminated in April 2006 with the final GTK1 release, version 0.8.6, which included minor bug fixes and stability enhancements before the full transition.[5] The FLTK2 port marked a key expansion milestone, but development faced early stagnation from mid-2006 to 2008, attributed to insufficient funding and maintainer bandwidth constraints, resulting in no official releases during this interval. An alpha version of the FLTK2 port was announced in September 2007, but substantive progress halted until October 2008, when Dillo 2.0.0 launched with the new backend, introducing tabbed browsing—a significant usability upgrade for multi-page navigation while maintaining the browser's minimal footprint under 10 MB. Subsequent releases in this period, such as version 2.2.1 in 2011, added incremental features like improved form handling and bug resolutions, though activity slowed after July 2009 when Cid announced reduced involvement due to personal commitments including fatherhood.[5] A secondary expansion occurred with the shift to FLTK 1.3 starting in June 2011, coinciding with that toolkit's stable release; Dillo 3.0.0 followed shortly thereafter, enabling better widget rendering and Unicode support. Further advancements included a new hyphenation algorithm in version 3.0.3 (April 2013) for enhanced text layout and the final pre-stagnation release, 3.0.5, in June 2015, which incorporated security patches and rendering optimizations. These updates expanded Dillo's viability for low-resource environments, with successful builds on platforms like Haiku and embedded Linux distributions.[5] Stagnation intensified post-2015 amid maintainer attrition; the October 2016 death of Sebastian Rogal, a key contributor, effectively halted momentum, followed by Cid's last project communication in 2019. No releases occurred from 2015 to 2023—a nine-year gap—during which the codebase saw minimal commits, compatibility with modern web standards eroded, and forks like DilloNG emerged but also stalled without sustaining development. This period underscored Dillo's reliance on a small volunteer team, vulnerable to life events and the growing complexity of web technologies outpacing its minimalist architecture.[5][13]Recent Revival and Milestones
Following a period of limited activity after the 3.0.5 release in 2015, Dillo underwent a revival driven by community developers who resumed maintenance via the project's GitHub repository, addressing long-standing bugs and incorporating previously unmerged changes from 2015–2017.[14] This resurgence included the relocation of official resources to GitHub Pages after the original dillo.org domain expired in 2022 and was repurposed by unrelated parties.[15] By 2024, the project had stabilized under new stewardship, emphasizing its lightweight design for modern embedded systems and low-resource environments while preserving core principles of minimalism and speed.[1] Key milestones in this revival include the release of version 3.1.0 on May 4, 2024, which integrated fixes for rendering issues, improved CSS handling, and enhanced stability accumulated over prior years.[16] This was followed by a minor update, 3.1.1, on June 8, 2024, focusing on bug resolutions and minor refinements.[17] The effort culminated in version 3.2.0, released on January 18, 2025, coinciding with the browser's 25th anniversary in December 2024; this update added support for WebP images, SVG rendering for mathematical formulas, and further optimizations for contemporary lightweight use cases.[6][5] The revival gained public visibility through a February 2025 presentation at FOSDEM titled "Resurrecting the minimalistic Dillo web browser," where developers demonstrated the engine's performance on resource-constrained hardware and outlined ongoing work to maintain compatibility with basic web standards without bloating the footprint.[18] These developments underscore Dillo's persistence as an open-source alternative prioritizing efficiency over feature parity with resource-intensive browsers.[19]Technical Foundation
Rendering Engine and Parsing
Dillo utilizes a custom rendering engine, the Dillo Rendering Engine (DRC), implemented in C and C++ for optimized speed and minimal resource overhead. Unlike engines such as Blink, Gecko, or WebKit, the DRC avoids bloated dependencies, enabling low memory usage and fast rendering of pages, including larger ones, on constrained hardware.[20][1] The engine supports real-time rendering, incrementally processing and displaying content as it loads, integrated with the FLTK GUI library for output while retaining independent layout and painting logic. Recent updates have enhanced image buffering, caching, and widget sizing to improve performance and handle floating elements more effectively.[1][3] Dillo's HTML parsing employs a proprietary parser adhering to a subset of HTML 4.01, extended with select HTML5 features likeUser Interface Toolkit
Dillo utilizes the Fast Light Toolkit (FLTK), a cross-platform C++ graphical user interface library, as its primary toolkit for constructing the browser's interface elements such as windows, toolbars, menus, and buttons.[3][2] FLTK was selected for its emphasis on speed, minimal resource consumption, and portability across Unix-like systems, Windows, and other platforms, aligning with Dillo's design philosophy of low overhead and efficiency.[1][22] Unlike its early versions, which relied on the GTK+ toolkit for graphical components, Dillo transitioned to FLTK starting with later development iterations to reduce dependencies and enhance cross-platform compatibility; this shift enabled static linking of FLTK into the binary by default, minimizing runtime library requirements and contributing to a smaller overall footprint.[23][24] The integration involves FLTK providing the foundational widgets and event handling, while Dillo's custom Dw (Dillo Widget) system—implemented with a FLTK-specific platform backend—handles the rendering viewport for web content, bridging UI controls with the browser's layout and drawing primitives.[25][23] This combination yields a responsive interface with low memory usage; for instance, Dillo's static FLTK linkage avoids dynamic loading overhead, and optimizations in FLTK versions like 1.3.x have been incorporated to fix platform-specific issues such as scrollbar behavior and widget styling.[3][26] FLTK's lightweight nature supports Dillo's performance goals, enabling quick startup and interaction even on resource-constrained systems, though it limits adoption of advanced theming or native desktop integration found in heavier toolkits like Qt or GTK.[1][27] Developers can extend UI behaviors via FLTK's widget subclassing, but Dillo prioritizes simplicity, with core components like the location bar and navigation buttons leveraging standard FLTK controls for mouse-driven operation.[4][28]Build and Platform Support
Dillo is compiled from source using the GNU autotools build system. The latest stable release, version 3.2.0 as of 2024, is distributed as a tarball or via Git clone from the official repository. Building requires FLTK 1.3 as the primary GUI toolkit dependency, along with image processing libraries such as libpng, libjpeg, libwebp, and libbrotli for optional format support; zlib is also needed. Optional TLS encryption relies on OpenSSL 1.1/3, LibreSSL, or mbedTLS 2/3. On Debian-based systems, relevant development packages include gcc, g++, autoconf, automake, zlib1g-dev, libfltk1.3-dev, libssl-dev (or equivalent), libpng-dev, libjpeg-dev, libwebp-dev, and libbrotli-dev.[29][1] The standard build process from a release tarball entails extracting the archive (e.g.,tar jxvf dillo-3.2.0.tar.bz2), creating a build directory, running ./configure --prefix=/usr/local (with --disable-tls to omit encryption if desired), followed by make and sudo make install. When building from Git, ./autogen.sh generates the configure script beforehand. Post-installation, a hyphenation database for text reflow can be set up via the dillo-install-hyphenation script. Adjustments for BSD, Solaris, macOS, or Windows (via Cygwin) involve platform-specific configure flags or toolchain setups, as detailed in the installation documentation.[29]
Dillo exhibits broad platform compatibility, with confirmed builds on Unix-like systems including GNU/Linux across architectures such as x86, amd64, ARM (e.g., Cortex-A8), and MIPS64EL; BSD variants like FreeBSD, OpenBSD, NetBSD (including NetBSD/VAX), and DragonFlyBSD; Solaris on SPARC and UltraSPARC; IRIX 6.5.27f; and macOS (including GNU Darwin on PowerPC and x86). Windows support is available through Cygwin, enabling graphical operation under POSIX emulation. Historical versions have run on MS-DOS-compatible systems, Atari 68k (via MiNT), handhelds like iPAQ and Psion 5MX, and embedded platforms such as StrongARM CPUs, Simputer, and Sony PlayStation 2 Linux. Earlier Dillo 1.x iterations extended to DEC Alpha, PowerPC, SPARC, Tru64 UNIX, HP-UX, AIX, QNX, and RISC OS, though modern releases prioritize lightweight Unix environments. Community reports confirm functionality on these setups following standard compilation, underscoring Dillo's emphasis on minimal dependencies for resource-constrained hardware.[30][1]
Core Features
Browsing and Navigation Capabilities
Dillo supports session-based navigation history through dedicated Back and Forward buttons, which traverse previously visited pages in the current tab upon left-click. Middle-clicking these buttons opens the target page in a new tab, while right-clicking displays a menu listing stack entries for selection. Keyboard accelerators include the comma key (,) for back and the period key (.) for forward.[4] The address bar, or location bar, serves as the primary entry point for direct URL navigation, displaying the current page's address and accepting typed or pasted inputs. A red "X" icon clears the bar on left-click, and middle-clicking it pastes the system clipboard's URL if available. Users select the bar's contents with Ctrl+L for quick editing. Integrated search is invoked via a magnifying glass icon or Ctrl+S, routing queries to a user-configurable engine defined in the dillorc file's search_url parameter.[4] Tabbed browsing enables multi-page management within one window, introduced in version 2.0. Links open in new tabs via middle mouse button or Ctrl+left-click, with blank tabs created through Ctrl+T or the File menu. Tabs close via the "X" button or right-click on the tab label, and switching occurs with Alt+number (e.g., Alt+1 for the first tab). Configuration options in dillorc include focus_new_tab=YES for automatic activation of new tabs and middle_click_opens_new_tab=NO to favor new windows instead.[4][31] Bookmarks facilitate persistent access to sites, saved by right-clicking a page and selecting "Bookmark this page" from the context menu. The manager opens via the Bookmarks button or Ctrl+B, displaying an editable list stored in ~/.dillo/bm.txt and accessible internally at dpi:/bm/. This file synchronizes across Dillo instances but lacks broader import/export beyond manual editing.[4] Hyperlink traversal occurs via left-click on elements like underlined blue text (turning purple post-visit), with the cursor shifting to a hand icon over clickable areas. These actions automatically populate the navigation history stack. Dillo omits global or persistent history logging beyond the per-session stack, prioritizing minimal resource use over exhaustive tracking.[4]Media and Format Support
Dillo renders static images in PNG, JPEG, GIF, SVG (with initial support added in version 3.2.0 for simple graphics and mathematical formulas), and WebP formats.[4][32][33] These capabilities enable basic visual content display without reliance on scripting or dynamic elements. The browser also handles plain text documents directly, converting them for on-screen viewing.[4] Embedded multimedia such as video or audio streams lacks native playback support, aligning with Dillo's minimalist design that prioritizes resource efficiency over comprehensive media handling.[1] Users must invoke external applications for such content, as the core engine does not integrate decoding or rendering for formats like MP4, MP3, or similar. This limitation stems from the absence of plugin architectures or multimedia libraries in the standard build, though experimental variants have explored additions like video playback via configuration tweaks.[1] Format compatibility extends to a subset of web standards, including HTTP/HTTPS-delivered images and basic file types, but excludes vector formats beyond basic SVG or proprietary codecs. Configuration options allow ignoring specific image formats to optimize performance or bandwidth.[14] Overall, Dillo's media support emphasizes lightweight, standards-compliant static assets over interactive or streaming media, reflecting its focus on speed and low footprint.[3]Extensions and Protocols
Dillo provides native support for the HTTP and HTTPS protocols, enabling the loading of remote web content with optional SSL/TLS encryption via libraries such as OpenSSL or mbedTLS.[4] It also handles FTP for file transfers, typically leveraging external tools like wget for downloads, and supports local file access through the file:// URI scheme.[1][4] Additional protocols, including Gopher, Gemini, IPFS, IPNS, and Spartan, are supported through the Dillo Plugin Interface (DPI), which allows extensions in any programming language via standard input/output or Unix domain sockets.[1][34] Plugins function as filters or servers: filter plugins process single requests (e.g., translating Gemini content to HTML), while server plugins handle multiple interactions over sockets.[4] Configuration occurs in the user's~/.dillo/dpidrc file, mapping protocol schemes to plugin executables, such as proto.gemini = ~/.dillo/dpi/gemini/gemini.filter.dpi for the Gemini plugin implemented in Bash.[4][35]
The DPI emphasizes modularity by offloading optional features from the core codebase, including protocol handlers like FTP browsing with progress feedback or built-in services such as bookmark management via dpi:/bm/.[34] Examples include the C-based Gopher plugin for menu navigation and the Go-based IPFS plugin for decentralized content retrieval.[1] This approach maintains Dillo's lightweight footprint but limits extensibility to protocol and format translation rather than dynamic scripting or user-installed add-ons typical of larger browsers.[1][34] Plugins are community-contributed and integrated via pull requests to the project's repository.[1]
Limitations and Design Trade-offs
Unsupported Modern Technologies
Dillo lacks support for JavaScript (ECMAScript), a core technology for dynamic web content, interactive elements, and client-side scripting, which is present in nearly all modern browsers. This omission is deliberate, prioritizing security and performance over functionality, as JavaScript execution introduces risks like arbitrary code execution and resource-intensive operations.[4][3] Without JavaScript, Dillo cannot render sites reliant on frameworks such as React or Angular, or execute scripts for form validation, AJAX requests, or real-time updates, resulting in static or broken displays on JavaScript-dependent pages.[36] The browser supports only a subset of HTML5 elements and attributes, excluding advanced features like<canvas>, <video>, <audio>, and Web APIs for multimedia playback or graphics rendering. While basic HTML4.01 and some transitional HTML5 tags are handled via Dillo's custom rendering engine, semantic elements like <article> or <nav> may render as plain text without structural enhancements, and forms lack progressive enhancement.[4] This partial conformance stems from the engine's focus on core parsing rather than full standards compliance, avoiding the complexity of stateful rendering models used in engines like Blink or Gecko.[7]
CSS3 implementation is incomplete, covering CSS 2.1 basics like selectors, box model, and positioning but omitting modules for animations, transitions, flexbox, grid layouts, media queries beyond simple breakpoints, and advanced pseudo-elements. As a result, responsive designs, visual effects, and modern typography fail to apply, leading to uniform, non-adaptive layouts unsuitable for mobile or high-resolution displays.[4][37] Dillo also eschews support for WebGL, WebAssembly, and service workers, technologies enabling hardware-accelerated graphics, compiled code execution, and offline capabilities, respectively, further limiting compatibility with performance-oriented web applications.[2]
These exclusions align with Dillo's design philosophy of minimalism, evidenced by its avoidance of plugin architectures that could bridge gaps (e.g., no NPAPI or extension APIs for injecting JavaScript engines), ensuring low memory usage—typically under 10 MB for basic pages—but rendering approximately 70-80% of contemporary websites as partially or fully non-functional as of 2024 benchmarks in lightweight browser evaluations.[19][38]