Blame
Date:
Mon May 9 07:31:07 2022 UTC
Message:
minor tweaks
001
2021-07-18
op
# Telescope
002
2021-07-18
op
003
2021-08-01
op
Telescope is a Emacs/w3m-inspired browser for the "small internet"
004
2021-08-01
op
that supports Gemini, Gopher and Finger.
005
2021-03-12
op
006
2021-08-18
op
Features:
007
2021-08-18
op
008
2021-08-18
op
- tabs
009
2021-08-18
op
- bookmarks
010
2021-08-18
op
- privsep
011
2021-08-18
op
- minibuffer live narrowing
012
2021-08-28
op
- multiple protocols support
013
2021-08-28
op
- fully customizable
014
2021-08-18
op
015
2021-03-12
op
There are still various things missing or, if you prefer, various
016
2021-03-12
op
things that you can help develop :)
017
2021-03-12
op
018
2021-03-12
op
- subscriptions
019
2021-03-17
op
- tofu oob verification
020
2021-03-12
op
- client certificates
021
2021-06-20
op
- add other GUIs: at the moment it uses only ncurses, but telescope
022
2021-06-20
op
shouldn't be restricted to TTYs only!
023
2021-03-12
op
024
2021-07-24
op
[![asciicast](https://asciinema.org/a/426862.svg)](https://asciinema.org/a/426862)
025
2021-03-12
op
026
2021-03-13
op
027
2021-03-15
op
## Why yet another browser?
028
2021-03-15
op
029
2021-03-15
op
One of the great virtues of Gemini is its simplicity. It means that
030
2021-03-15
op
writing browsers or server is easy and thus a plethora of those
031
2021-03-15
op
exists. I myself routinely switch between a couple of them, depending
032
2021-03-15
op
on my mood.
033
2021-03-15
op
034
2021-03-15
op
More browsers brings more stability as it became more difficult to
035
2021-03-15
op
change the protocol, too.
036
2021-03-15
op
037
2021-03-15
op
However, Telescope was ultimately written for fun, on a whim, just to
038
2021-03-15
op
play with ncurses, libtls, libevent and the macros from `sys/queue.h`,
039
2021-03-15
op
but I'd like to finish it into a complete Gemini browser.
040
2021-03-15
op
041
2021-03-15
op
042
2021-03-15
op
## Goals
043
2021-03-15
op
044
2021-03-15
op
- Fun: hacking on Telescope should be fun.
045
2021-03-15
op
- Clean: write readable and clean code mostly following the style(9)
046
2021-03-15
op
guideline. Don't become a kitchen sink.
047
2021-03-15
op
- Secure: write secure code with privilege separation to mitigate the
048
2021-03-15
op
security risks of possible bugs.
049
2021-03-15
op
- Fast: it features a modern, fast, event-based asynchronous I/O
050
2021-07-03
op
model.
051
2021-03-16
op
- Cooperation: re-use existing conventions to allow inter-operations
052
2021-03-16
op
and easy migrations from/to other clients.
053
2021-03-15
op
054
2021-03-15
op
055
2021-03-17
op
## TOFU
056
2021-03-17
op
057
2021-03-17
op
Telescope aims to use the "Trust, but Verify (where appropriate)"
058
2021-03-17
op
approach outlined here:
059
2021-03-17
op
[gemini://thfr.info/gemini/modified-trust-verify.gmi](gemini://thfr.info/gemini/modified-trust-verify.gmi).
060
2021-03-17
op
061
2021-03-17
op
The idea is to define three level of verification for a certificate:
062
2021-03-17
op
063
2021-03-17
op
- **untrusted**: the server fingerprint does NOT match the stored
064
2021-03-17
op
value
065
2021-03-17
op
- **trusted**: the server fingerprint matches the stored one
066
2021-03-17
op
- **verified**: the fingerprint matches and has been verified
067
2021-03-17
op
out-of-band by the client.
068
2021-03-17
op
069
2021-03-17
op
Most of the time, the `trusted` level is enough, but where is
070
2021-03-17
op
appropriate users should be able to verify out-of-band the
071
2021-03-17
op
certificate.
072
2021-03-17
op
073
2021-07-03
op
At the moment there is no UI for oob-verification though.
074
2021-03-17
op
075
2021-03-17
op
076
2021-03-12
op
## Building
077
2021-03-12
op
078
2021-03-12
op
Telescope depends on ncursesw, libtls (from either LibreSSL or
079
2022-02-20
op
libretls), libevent (either v1 or v2) and pkg-config. When building
080
2022-02-20
op
from a git checkout, yacc (or bison) is also needed.
081
2021-03-12
op
082
2021-03-14
op
To build from a release tarball just execute:
083
2021-03-12
op
084
2022-05-09
op
$ ./configure
085
2022-05-09
op
$ make
086
2022-05-09
op
$ sudo make install
087
2021-03-12
op
088
2021-08-19
op
The configure script has optional support for building with libraries
089
2022-05-09
op
provided by your distribution instead of using the bundled versions:
090
2021-08-19
op
091
2021-08-19
op
- `--with-libbsd`: link with [libbsd](https://libbsd.freedesktop.org)
092
2021-08-19
op
- `--with-libimsg`: link with the
093
2021-08-19
op
[imsg-compat](https://github.com/bsd-ac/imsg-compat) library
094
2021-08-19
op
095
2021-03-12
op
If you want to build from the git checkout, something that's
096
2021-03-15
op
discouraged for users that don't intend to hack on telescope
097
2021-03-12
op
098
2022-05-09
op
$ ./autogen.sh
099
2022-05-09
op
$ ./configure
100
2022-05-09
op
$ make
101
2022-05-09
op
$ sudo make install # eventually
102
2021-03-12
op
103
2021-03-12
op
Please keep in mind that the main branch, from time to time, may be
104
2021-03-12
op
accidentally broken on some platforms. Telescope is developed
105
2021-03-12
op
primarily on OpenBSD/amd64 and commits on the main branch don't get
106
2021-03-12
op
always tested in other OSes. Before tagging a release however, a
107
2022-03-29
op
comprehensive testing on various platforms is done to ensure
108
2022-03-29
op
everything is working as intended.
109
2021-03-12
op
110
2021-03-12
op
111
2021-08-28
op
## Contributing
112
2021-07-17
op
113
2021-07-17
op
Any form of contribution is appreciated, not only patches or bug
114
2021-08-28
op
reports: feel free to open an issue or send an email to
115
2021-08-28
op
`telescope@omarpolo.com`.
116
2021-07-17
op
117
2021-08-28
op
If you have a sample configuration, custom theme, a script or anything
118
2022-03-29
op
that could be helpful to others, consider adding it to the `contrib`
119
2022-03-29
op
directory.
120
2021-07-17
op
121
2021-08-28
op
122
2021-07-15
op
## User files
123
2021-07-15
op
124
2021-10-08
op
Telescope stores user files according to the [XDG Base Directory
125
2021-10-08
op
Specification][xdg] by default. The usage and contents of these files
126
2021-10-07
op
are described in [the man page](telescope.1), under "FILES".
127
2021-07-15
op
128
2021-07-15
op
Only one instance of Telescope can be running at time per user.
129
2021-07-15
op
130
2021-07-15
op
131
2021-03-12
op
## License
132
2021-03-12
op
133
2021-03-12
op
Telescope is distributed under a BSD-style licence. The main code is
134
2021-08-13
op
under the ISC but for files under `compat/` it varies.
135
2021-07-18
op
136
2021-07-18
op
`data/emoji.txt` is copyright © 1991-2021 Unicode, Inc. and
137
2022-03-29
op
distributed under the [UNICODE, Inc license
138
2022-03-29
op
agreement][unicode-license].
139
2021-07-18
op
140
2021-07-18
op
141
2021-07-18
op
[unicode-license]: https://www.unicode.org/license.html
142
2021-10-08
op
[xdg]: https://specifications.freedesktop.org/basedir-spec/latest/
Omar Polo