about summary refs log blame commit diff stats
path: root/readme.md
blob: 4919d82ff92ba84099d0b2aab8102160e5af88cc (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                                         

                
 

                                                                               
 
                                               

            

                            


                                      
                            
                                               

                              
           
 
                                   
 
                                                               
                                                     
                                           
                                                                   
         

                          
 




                                                                          

                                                                           

                                                                    



                                                                           



                                   




                                                                            







                                                                      
 
                                 
 

                                                                      
 

                                                                        
# chawan - a web browser in your terminal

## What is this?

A terminal web browser. It displays websites in your terminal and allows you to
navigate on them.

It also functions as a pager, similarly to w3m.

## Compiling

1. Install the nim compiler.
2. Install the following dependencies:
	- curl
	- quickjs
3. Use one of the following:
	- `make release` - normal release build
	- `make` - debug build

## Features

Currently implemented features are:

* a multi-charset, double-width capable, multi-processing pager
* a CSS-capable layout engine (with forms, tables...)
* incremental loading of plain text streams
* JavaScript based navigation, (very) basic JS support in documents
* cookies

...and a lot more planned.

## Caveats

Chawan is still very much an experimental browser engine with some serious
limitations:

* Chawan uses uses its own browser engine, implemented from scratch. Expect
  bugs and missing features.
* Chawan has no incremental layouting capabilities yet, so it may be
  rather slow on large websites with complicated layout.
* While buffers run as separate processes, Chawan does not have any actual
  sandboxing. I would strongly advise against enabling scripting until this
  problem is resolved.

## Configuration

See [doc/config.md](doc/config.md).

## Neighbors

Many other text-based web browsers exist. Here's some recommendations if you
want to try more established ones:

* w3m - Infinitely extensible with local-cgi and some creativity. Also
  has inline image support. Heavily inspired Chawan.
* elinks - Has CSS and JavaScript support, and incremental rendering
  (it's pretty fast.)
* lynx - "THE text-based web browser."
* edbrowse - This one looks more like `ed` than `less` or `vi`. Mainly
  designed for blind users.
* browsh - Firefox in your terminal.

## Why write another web browser?

I've found other text-based web browsers insufficient for my needs, so
I thought it'd be a fun excercise to write one by myself, for myself.

Generally, I'm happy if Chawan works on websites I use frequently. If it
also works on other websites, that's a bonus.