by Jorge Arellano Cid (June 1, 2002)
After
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.
Related stories:
... For further information