A comparison of text-based browsers

Enough mamby-pamby housekeeping posts. It’s time to put some meat on the table.

I’m going to borrow an idea for a post from persea, who suggested taking a look at the running weight of several browsers — specifically text-only browsers — for a comparison.

Because in the same way that all graphical browsers are not equal, all text-based browsers are not equal. And if you are working on a machine with little overhead, that can be important.

Like everything else I discuss here, your preference for one particular program or another is paramount. My goal is not to prosletyze, but rather to take a somewhat-unbiased snaphot, for educational purposes.

Our guinea pigs today come in six flavors, and some of these hearken back so far into the history of online computing that I swear it’s 1988 again:

elinks links
lynx netrik
retawq w3m

I’m concerned strictly with text-based interfaces here, so things like links2 and the image support patch for w3m are out of the contest. Sorry, wait for the next contest. ;)

Our judges today will be the python memory script from summer a year ago. Because this is all done in the name of science, of course. :twisted:

Let’s get started. First, elinks, by virtue of starting with an E. This is done in alphabetical order, you know.

I should say up front that elinks is what I prefer on a day to day basis, and if that skews the results or my presentation, I’ll apologize up front.

But my perspective on the issue says I shouldn’t have to. I like elinks because it pushes hard to mimic the features and behavior of run-of-the-mill graphical browsers.

So it has tabs, an on-board download manager, a replete bookmarking and history system, more options than you can shake a stick at, and a vicious array of configuration settings.

So yes, I’m partial to the first on one the list, but that’s just life. To be fair, it’s a bit heavy and can be quite sluggish at times.

It’s a tradeoff for me though: Yes, it can take a while longer to load a page. But I get more goodies with elinks than with some other browsers.

Next up is links — straight links, with no added fillips. I built this one myself, stripping out things like support for X11, Javascript and so forth.

elinks and links are obvious cousins; even the menus and line-drawing options are the same. I’ve never tried to cram the options or settings for one into the system of the other, and I doubt it would work.

On the other hand, learning one is easy if you know the other, and considering that links recoups some speed when compared with its relative, it might be worth learning one, to know both.

links has a few other progeny you should be aware of: links-hacked drags some features into the links corpus, while links2 is an offshoot that makes the leap to graphical arenas. Albeit framebuffer driven and somewhat basic.

Next is lynx, which is an obvious pun but a clever name. Lynx does a lot of the things elinks does, and does a fairly quick and clean job doing it.

I found only one options page and it is very easy to navigate. In fact, one of the things I liked best about lynx was it’s flat approach to configuration. Everything is right there, and easy to control.

That being said, lynx probably has the most configuration options at the command line of all the six listed here. Looking over the --help list, it seems like just about anything can be turned on or off … even turning things on or off.

Number Four on the list is netrik, and one I admit I hadn’t used before today. netrik is very light and very sparse, and many of the features or frills that others have, netrik seems to avoid.

Which is most likely a good thing, because the ultimate feel of netrik is more of a pager and less of a browser. (Bonus points for using the names of three pagers in a sentence about pagers.)

If you’re not into pagers or think I’m talking about the beepy thing on your belt, you might have a hard time understanding that. Let me put it into different terms.

If you can imagine a browser that just spits out the text of a page and lets to step through the information little by little … that’s what netrik feels like.

Funny: It sounds like something Apple would bundle up in their latest gadget, fete as a major innovation and win kudos from fanboys everywhere. Oh wait, they already did that.

retawq is next, and probably the best thing I can mention about retawq is that it is so small and so light that one of my favorite distributions that I don’t use — ttylinux — keeps it on board as its sole application.

retawq is a speed demon even when compared to the other five in this list, and while it doesn’t do a lot of the fun stuff (or necessary stuff) that most people probably want, it’s hard to find something to complain about.

You can see in the screenshot that retawq, like netrik, stumbles a little when it comes to specialized characters, but it doesn’t impede the main function — getting in and around the web.

So personally I’m willing to forgive that teeny speck of inconsistency and rank this one alongside its predecessor as a very very light solution to the task.

Last but not least is w3m, and with this entry we’re back among top-rung feature-filled text-based browser applications. w3m comes by default in a lot of Linux distributions.

And for that reason, is usually (in my experience anyway) the one text-based browser everyone seems to know about. The sad part of that popularity is people are usually trying to fix something when they’re using it.

So it sometimes rides the ignominy of a failed X session, or comes to the rescue when something video-ish goes kaput. And it might be that it bears a little of the ill-will of those adventures.

Be that as it may, w3m makes it easy to browse — and this time I mean browse, not just page — in an easy fashion. A simple combination of arrow and tab keys will have you surfing in no time.

And with that, this quick rundown is finished. I can tell you a lot more about elinks (and probably, by extension links) than the others; if you’re more familiar with one of the other four, please share.

Now for the moment of truth: How they size up against one another. Just to be clear:

  • The host machine was this one, with a custom installation of Crux 2.6,
  • w3m and lynx were the default versions built from the Crux ports repository,
  • elinks was a custom version bumped to the prerelease beta,
  • I adjusted the Pkgfile for links to remove graphic support, and
  • retawq and netrik were converted from AUR PKGBUILDs.

Here’s what our judge had to say about the experience:

 Private  +   Shared  =  RAM used	Program 

104.0 KiB +  35.5 KiB = 139.5 KiB	init
160.0 KiB +  20.5 KiB = 180.5 KiB	dhcpcd
476.0 KiB + 128.5 KiB = 604.5 KiB	retawq
540.0 KiB +  93.0 KiB = 633.0 KiB	netrik
356.0 KiB + 280.5 KiB = 636.5 KiB	udevd (3)
752.0 KiB + 205.0 KiB = 957.0 KiB	screen-4.0.3 (2)
844.0 KiB + 178.0 KiB =   1.0 MiB	ssh
  1.5 MiB + 100.5 KiB =   1.6 MiB	links
  1.6 MiB + 178.0 KiB =   1.8 MiB	w3m
  2.1 MiB + 141.5 KiB =   2.2 MiB	elinks
  2.0 MiB + 172.5 KiB =   2.2 MiB	lynx
  3.1 MiB + 998.0 KiB =   4.1 MiB	bash (10)
                         15.9 MiB

 Private  +   Shared  =  RAM used	Program 

retawq is the clear winner when it comes to running with a light profile, although it’s keeping ahead of netrik only by a tiny fragment.

Meanwhile, the four browsers with more options and features are definitely riding higher on the list than those two. links and w3m have the middle ground for a megabyte-and-a-half plus-or-minus.

And the two I would probably suggest, just by virtue of usability and familiarity take the upper end of the spectrum, with a massive 2.2Mb consumed, for one page of the Web.

Speed is relative, but at 120Mhz, there is a distinct difference between the pace of retawq versus the pace of elinks. Particularly with larger, heavier pages like Wikipedia, where elinks can take a minute or two to render a single entry.

So as you might imagine, memory profile tends to mirror speed and performance, in my opinion.

And there you have it. My advice would probably be to keep a high-end browser and a low-end browser on hand, and use a tool suited to the job.

That decision should of course be tempered against the hardware you’re using.

And now, purely as torture for anyone who has read this far, I give you the obvious and clear winner over all others in this category:

Ladies and gentlemen, may I present the worst possible browsing experience with a minimum of resources:

curl kmandla.wordpress.com | dehtml -p -s | less

Happy surfing. :mrgreen:

About these ads

18 thoughts on “A comparison of text-based browsers

  1. n2j3

    oops, forgot to mention that w3m’s keymap config is located in ~/.w3m/keymap . Excuse the double post and if you can, merge and delete :) thanks.

  2. John

    I use lynx as a “get me pretty web text now” kind of command:

    lynx -dump http://beer.com > beer.txt

    It formats tables and so forth into good old fashioned fixed-width terminal text. Great for testing or for further processing.

  3. Jose Catre-Vandis

    I had to install curl, but the dehtml pipe didn’t work, so then I had to go off and find it, complie and install it. ;)

  4. LeoSolaris

    Well… now I have a coding problem to toy with in dehtml… for some reason the way it wanted to make locale changes was denied, so I violated makepkg’s warning and used the –asroot flag. It still failed with an odd failure to find something.

    Now, I must figure out why, so I can see what some random anonymous person on the Internet was talking about… No, I am not a geek… not at all! Why do you ask?

    1. K.Mandla Post author

      Ah, I missed that one. Thanks.

      I am not sure why, although I’ve always just blamed it on processor speed. Opening a Wikipedia page in elinks can take a minute or two, at 120Mhz. Not every site is like that, but they are common enough to be a little annoying.

      1. mulenmar

        I remember one or two sites being slow to load in Elinks, but the one I remember is the Ubuntu forums. Worked fine when I changed the user agent string, and slightly better when I blacklisted the ipv6 module. :)

  5. Pingback: Links 15/1/2011: 1-Second Linux Boot, Firefox 4 Beta 9 | Techrights

  6. Kevin

    Out of curiosity do you have CSS enabled on elinks?

    I found that it causes some pages to load very slowly.
    I just enabled it to test and it seems to only cause a problem on bigger pages (I couldn’t find a wikipidia page that would load slowly but engadget.com (a very large site) was slow but near instant with CSS disabled).

    This is on a wired broadband connection and a 2.5 Ghz dual core machine with Arch and no X (so I’m guessing it’s not my system resources).

  7. technologyunit

    After you wrote this I when and installed links. (I had used it in the past) and found that it is actually a lot of fun to just browse the internet with out distractions. Thanks for bringing something back from my youth.

  8. Pingback: Going Old School « Freed Up Thoughts

  9. Pingback: … zu guter Letzt » F!XMBR

  10. Effe

    Ladies and gentlemen, may I present the worst possible browsing experience with a minimum of resources:

    curl kmandla.wordpress.com | sed s// /g | less

  11. Daniel

    Hey, next time, please have a paragraph at the end with a clear conclusion of the winner. I skimmed the article and didn’t glean anything from it. The last sentence “And now, purely as torture for anyone who has read this far, I give you the obvious and clear winner over all others in this category:” ironically featured an image which wouldn’t have been viewable in any of the browsers mentioned, not to mention the actual image didn’t seem to contain any useful information that the sentence promised.

  12. Pingback: Lazy Reading – DragonFly BSD Digest

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s