Article: Introducing Dillo, a lightweight embeddable browser
Jun 1, 2002 — by LinuxDevices Staff — from the LinuxDevices Archive — 8 viewsAfter more than two years of development since the project was founded, Dillo has now matured enough to become a very attractive component for embedded devices.
Being the Dillo project's founder, maintainer, lead developer, and having a full time dedication for all of Dillo's lifespan, puts me in an excellent position to introduce the Embedded Linux community to the Dillo project.
Although our website already has a nice general project presentation, this article aims to underline the matters that may be of greatest interest to the Embedded Market. Nevertheless, for a broader view of the Dillo project's achievements and projections, the general presentation is definitively recommended as the authoritative complementary reading.
Now, for some background on Dillo . . .
What's Dillo?
Dillo is a very fast, extremely small web browser that's completely written in C. The source and binary are less than 300KB each (currently, the binary is around 230KB). It is a graphical browser built upon GTK+ (GNOME is NOT required), and it renders a good subset of HTML — excluding frames, JavaScript, and JVM support. Dillo aims to be a multi-platform browser alternative that's small, stable, developer-friendly, usable, fast, and extensible. Best of all, Dillo is a 'free software' project, released under the terms of the GNU general public license (GPL).
Note that dillo is NOT designed solely for embedded systems — however, its extraordinary efficiency and low library dependencies are what makes it suitable for such environments. For instance, the stripped binary on an x86 machine is around 230KB, and the main library dependency is GTK+. Memory requirements are lower than for lynx at start time, and the low CPU performance requirements let it run snappily on a 75 MHz pentium, 37 MHz ARM (Psion), or 25MHz 486 with 8MB of RAM.
Dillo on the iPAQ
Another interesting feature of Dillo is its high level of platform compatibility. Dillo compiles and runs happily on quite a few different OSes and architectures including, notably, the following handhelds:
- iPAQ
- GMATE's Yopy
- Psion
- CerfPod
Yes, Dillo is already running on those devices!
Summary of Dillo features:
- Image rendering (PNG, JPEG, GIF)
- A good subset of HTML/XHTML (no frames yet)
- Plain text
- Support for cookies
- Multiple browsing windows
- Non blocking user interface
- Full screen mode
- No JavaScript, no JVM
- Custom rendering engine (it's NOT based on GECKO)
Dillo as a GUI
One of the most appealing possibilities of having a working web browser on an embedded device is to rely on HTML as a graphical user interface, and to set a cgi-enabled HTTP server to do any required processing. That way, a simple but very powerful application development framework is ready to use, with the great advantage that, as it's widely deployed in the whole internet, widescale technical expertise already exists and portability of the resulting solutions is assured.
For the sake of illustrating this point, let me refer you to this excellent article by Patrick Glennon. It describes the implementation of a real world solution (see photo at right) that not only uses Dillo as the user interface, but also gets rid of the window manager.
Doing Dillo
The best way to get an accurate idea of what Dillo can and can't do is to download and compile its code on any GNU/Linux machine (or compatible platform), read quickly through the technical details and online help, and take it for a test drive. User it first with local files and images, then the local webserver (or intranet), and finally to check out your favorite sites on the web.
In the mean time, these screenshots should help you get the general picture.
The future of Dillo
Dillo already shines with respect to . . .
- Documentation browsing — with a snappy response, it becomes an excellent tool for consulting manuals, documentation, and any kind of information provided in HTML.
- Local file viewing — making a small library of saved web pages, images, or plain text, and a good directory structure, is all that's required for building an easily browseable repository.
- Information gathering — Dillo's excellent networking and and rendering speed makes it a very powerful tool for searching, skimming, going backward and forward, making new queries, saving interesting pages, etc. That is, a very fine tool for hunting information on the web.
- News reading — with its clean fonts and soft background, Dillo's very nice for reading sites that update daily, such as news sites.
In the future, with the improvements mentioned in the general presentation, Dillo will be ready for . . .
- Information consulting with PDAs (handhelds)
- Secure (encrypted) operations
- Serving as an API for simple applications (dpi1)
- Serving as a common interface for embedded systems applications
- E-commerce transactions
- Online banking
Note that the last two applications require a site design that doesn't rely on a scripting language. That is, built upon HTTPS, (X)HTML, forms, cookies, and server side processing.
The Dillo project needs support
Leading a web browser project is a very demanding task, due to the dynamic nature of the converging technologies along with the inherent internal complexity of a mostly parallel application. It's been a long haul to get to this point — almost two and a half years since the Dillo project was initially founded in late 1999. Since then, I've been working full time on it, on my own budget. Along the way, some other developers started to contribute, and a few very valuable guys kept working on Dillo for a long time.
This team of unpaid developers has succeeded in creating one of the fastest, smallest, and most robust web browsers available today. Although not all capabilities considered to belong in a feature-complete compact browser have been implemented to date, Dillo is already being used in more than 38 countries and is generating very positive user feedback.
The developers wish to make it known that they would like to concentrate on improving Dillo full-time, and for this reason are inviting potential corporate or philanthropic sponsors to contact them to discuss cooperation in accelerating Dillo's development. The code base is solid, documented, and clean, and backed by programmers who, after more than 2 years of work, are deeply familiar with browser technology and Dillo's optimized design.
We have created this presentation to assist anyone interested in understanding the past and future of the project, especially for those who are in a position to fund further development.
About the author: Jorge Arellano Cid is the Dillo project's founder, maintainer, and lead developer. He graduated from the Universidad Técnica Federico Santa María (in Chile) as an Informatics Civil Engineer with a minor in Systems Theory. He's also interested in psychology, metaphysics, and tennis.
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.