|
Technical overview
|
[Page 4 of 6] |
|
Metadescription
|
[Please note that the funding presentation is currently considered
historical and is not updated —corvid]
What's Dillo?
- Dillo is a web browser project completely written in C.
- Dillo is small: source is less than 350 KB, and the binary is around
300 KB!
- Dillo aims to be a multi-platform browser alternative that's small,
stable, developer-friendly, usable, fast, and extensible.
- Dillo is mainly based on GTK+ (GNOME is NOT required!)
- Dillo is a free-SW project in the terms of the GNU general public
license.
- Current code uses an improved and extended version of gzilla-0.2.2's
html-parser, and almost everything else was rewritten from scratch!.
- Dillo is very fast!
|
|
Design
|
Dillo is a browser purely written in C; that helps to make it very fast
and produces a smaller binary file than what would be achieved with
normal C++ code. The trade off is that inheritance gets more complex
cause it must be implemented with C code. That's a bit scary at the
very beginning, but is not as bad at it seems.
Dillo internals are not of a simple nature. A Web browser is an
inherently complex application. Just think of every thing that needs to
be coordinated to get the job done. And at the very same time!
Dillo's main libraries are gtk+ (gimp tool kit) for widgets and glib for
almost everything else (as memory management). So, if you happen to be
developing new code, please try to find what glib has to offer you, and
use it.
Dillo's SW-techniques include threads, callbacks, signal driven IO
(input/output) and an engine that takes care of file descriptor activity
(including sockets). Ah, there's also a widget abstraction layer that
serves as an internal ADT (abstract data type) to gtk+; It's called
Dillo widget (Dw_ within function names).
|
|
Current features
|
- A very good subset of HTML 4.01 SPEC is supported (no frames yet)
- URI parsing that's
RFC-2396 compliant
- Cookies support,
RFC-2965 compliant
- XHTML 1.0 rendering (same subset as for HTML)
- Plain text rendering
- Image formats support: PNG, JPEG and GIF (no animated GIFs)
- HTTP 1.0 (not fully yet)
- High portability among Un*x based machines
- An extraordinary small size (around 40 times less than big browsers)
- Innovative concurrency handling that allows for a user interface
that's always responsive and that lacks busy-clock locks!
- A simple cognitive model underlying the UI (simple to use for
the newbie and expert).
- An ordered, clean and documented code base that's easy to extend
and maintain.
- Extraordinary quick rendering!
- Streamed rendering of tables (it doesn't require the whole table data
to start rendering)
- Multiple browsing windows can be used at the same time!
- Start-up time that's near two seconds!
- Snapy response even on a 75Mhz Pentium with 32 Mb
- and much more...
Just test it!
|
|
Internal documentation
|
Besides the descriptions found on the web site, Dillo has several
other detailed documents about its internal working, that are included
within the sources distribution.
These are in the "/doc" directory within the tarball.
--------------------------------------------------------------------------
FILE DESCRIPTION STATE
--------------------------------------------------------------------------
NC_design.txt Naming&Coding design Current
Dillo.txt General overview of the program Current
IO.txt Extensive introduction Current
Cache.txt Informative description Current
Images.txt Image handling and processing Current
HtmlParser.txt A versatile parser Current
Dw.txt The New Dillo Widget (Overview) Current
DwWidget.txt The base object of Dw Current
DwImage.txt Dillo Widget image handling Incomplete
DwPage.txt Dillo Widget page (shortly) Incomplete
DwStyle.txt Styles of Dillo Widgets Pending
DwTable.txt Tables in dillo Current
--------------------------------------------------------------------------
[This documents cover dillo's internal working. They're NOT a user manual]
--------------------------------------------------------------------------
|
|
|