Blame


1 4def0885 2021-03-12 op ```
2 4def0885 2021-03-12 op _______ __
3 4def0885 2021-03-12 op |_ _|.-----.| |.-----.-----.----.-----.-----.-----.
4 4def0885 2021-03-12 op | | | -__|| || -__|__ --| __| _ | _ | -__|
5 4def0885 2021-03-12 op |___| |_____||__||_____|_____|____|_____| __|_____|
6 4def0885 2021-03-12 op |__|
7 4def0885 2021-03-12 op ```
8 5e11c00c 2021-03-02 op
9 cd302034 2021-03-15 op Telescope is a w3m-like browser for Gemini.
10 4def0885 2021-03-12 op
11 cd302034 2021-03-15 op At the moment, it's something **a bit more than a working demo**.
12 cd302034 2021-03-15 op However, it has already some interesting features, like streaming
13 cd302034 2021-03-15 op pages, tabs, privsep, input from the minibuffer etc...
14 4def0885 2021-03-12 op
15 4def0885 2021-03-12 op There are still various things missing or, if you prefer, various
16 4def0885 2021-03-12 op things that you can help develop :)
17 4def0885 2021-03-12 op
18 2058a15d 2021-03-13 op - UTF8 handling: it needs to handle non-ASCII characters in pages and
19 4def0885 2021-03-12 op in the minibuffer input
20 4def0885 2021-03-12 op - bookmarks
21 4def0885 2021-03-12 op - subscriptions
22 4def0885 2021-03-12 op - tofu
23 4def0885 2021-03-12 op - client certificates
24 97e30cc6 2021-03-14 op - add other GUIs: atm it uses only ncurses, but telescope shouldn't
25 97e30cc6 2021-03-14 op be restricted to TTYs only!
26 97e30cc6 2021-03-14 op - configuration file: even proposals are accepted. It needs a way to
27 97e30cc6 2021-03-14 op define keybindings, colors etc in a way that will possibly work on
28 4def0885 2021-03-12 op more than one graphic libraries.
29 4def0885 2021-03-12 op
30 2058a15d 2021-03-13 op ![Telescope new tab](images/about-new.png)
31 4def0885 2021-03-12 op
32 2058a15d 2021-03-13 op
33 cd302034 2021-03-15 op ## Why yet another browser?
34 cd302034 2021-03-15 op
35 cd302034 2021-03-15 op One of the great virtues of Gemini is its simplicity. It means that
36 cd302034 2021-03-15 op writing browsers or server is easy and thus a plethora of those
37 cd302034 2021-03-15 op exists. I myself routinely switch between a couple of them, depending
38 cd302034 2021-03-15 op on my mood.
39 cd302034 2021-03-15 op
40 cd302034 2021-03-15 op More browsers brings more stability as it became more difficult to
41 cd302034 2021-03-15 op change the protocol, too.
42 cd302034 2021-03-15 op
43 cd302034 2021-03-15 op However, Telescope was ultimately written for fun, on a whim, just to
44 cd302034 2021-03-15 op play with ncurses, libtls, libevent and the macros from `sys/queue.h`,
45 cd302034 2021-03-15 op but I'd like to finish it into a complete Gemini browser.
46 cd302034 2021-03-15 op
47 cd302034 2021-03-15 op
48 cd302034 2021-03-15 op ## Goals
49 cd302034 2021-03-15 op
50 cd302034 2021-03-15 op - Fun: hacking on Telescope should be fun.
51 cd302034 2021-03-15 op - Clean: write readable and clean code mostly following the style(9)
52 cd302034 2021-03-15 op guideline. Don't become a kitchen sink.
53 cd302034 2021-03-15 op - Secure: write secure code with privilege separation to mitigate the
54 cd302034 2021-03-15 op security risks of possible bugs.
55 cd302034 2021-03-15 op - Fast: it features a modern, fast, event-based asynchronous I/O
56 cd302034 2021-03-15 op model, it shouldn't never lags behind the user input.
57 cd302034 2021-03-15 op - Inter-operable: re-use existing conventions to allow
58 cd302034 2021-03-15 op inter-operations and easy migrations from/to other clients.
59 cd302034 2021-03-15 op
60 cd302034 2021-03-15 op
61 4def0885 2021-03-12 op ## Building
62 4def0885 2021-03-12 op
63 4def0885 2021-03-12 op Telescope depends on ncursesw, libtls (from either LibreSSL or
64 4def0885 2021-03-12 op libretls), libevent (either v1 or v2).
65 4def0885 2021-03-12 op
66 97e30cc6 2021-03-14 op To build from a release tarball just execute:
67 4def0885 2021-03-12 op
68 4def0885 2021-03-12 op ./configure
69 4def0885 2021-03-12 op make
70 4def0885 2021-03-12 op sudo make install
71 4def0885 2021-03-12 op
72 4def0885 2021-03-12 op If you want to build from the git checkout, something that's
73 cd302034 2021-03-15 op discouraged for users that don't intend to hack on telescope
74 4def0885 2021-03-12 op
75 4def0885 2021-03-12 op ./autogen.sh
76 4def0885 2021-03-12 op ./configure
77 4def0885 2021-03-12 op make
78 4def0885 2021-03-12 op sudo make install # eventually
79 4def0885 2021-03-12 op
80 4def0885 2021-03-12 op Please keep in mind that the main branch, from time to time, may be
81 4def0885 2021-03-12 op accidentally broken on some platforms. Telescope is developed
82 4def0885 2021-03-12 op primarily on OpenBSD/amd64 and commits on the main branch don't get
83 4def0885 2021-03-12 op always tested in other OSes. Before tagging a release however, a
84 4def0885 2021-03-12 op comprehensive testing on various platform is done to ensure everything
85 4def0885 2021-03-12 op is working as intended.
86 4def0885 2021-03-12 op
87 4def0885 2021-03-12 op
88 4def0885 2021-03-12 op ## License
89 4def0885 2021-03-12 op
90 4def0885 2021-03-12 op Telescope is distributed under a BSD-style licence. The main code is
91 4def0885 2021-03-12 op under the ISC but some files under `compat/` are BSD2 or BSD3.