All Projects → omar-polo → telescope

omar-polo / telescope

Licence: ISC license
A Gemini Browser

Programming Languages

c
50402 projects - #5 most used programming language
Roff
2310 projects
CSS
56736 projects
Yacc
648 projects
Makefile
30231 projects
perl
6916 projects

Projects that are alternatives of or similar to telescope

gmid
a Gemini server
Stars: ✭ 54 (+184.21%)
Mutual labels:  gemini, libtls
gemget
Command line downloader for the Gemini protocol.
Stars: ✭ 66 (+247.37%)
Mutual labels:  gemini
Ucx
Unified Communication X (mailing list - https://elist.ornl.gov/mailman/listinfo/ucx-group)
Stars: ✭ 471 (+2378.95%)
Mutual labels:  gemini
Gemini
💀💀💀[DEPRECATED] Use hermione
Stars: ✭ 1,505 (+7821.05%)
Mutual labels:  gemini
Crypto Trader
💰 Cryptocurrency trading bot library with a simple example strategy (trading via Gemini).
Stars: ✭ 554 (+2815.79%)
Mutual labels:  gemini
Aioquant
Asynchronous event I/O driven quantitative trading framework.
Stars: ✭ 188 (+889.47%)
Mutual labels:  gemini
Algo Coin
Python library for algorithmic trading cryptocurrencies across multiple exchanges
Stars: ✭ 365 (+1821.05%)
Mutual labels:  gemini
algo-coin
Python library for algorithmic trading cryptocurrencies across multiple exchanges
Stars: ✭ 386 (+1931.58%)
Mutual labels:  gemini
Lagrange
A Beautiful Gemini Client
Stars: ✭ 238 (+1152.63%)
Mutual labels:  gemini
Geoportal Server Catalog
Geoportal Server next generation search application and metadata catalog, based on elasticsearch.
Stars: ✭ 53 (+178.95%)
Mutual labels:  gemini
Ncgopher
A gopher and gemini client for the modern internet
Stars: ✭ 53 (+178.95%)
Mutual labels:  gemini
Cryptofeed
Cryptocurrency Exchange Websocket Data Feed Handler
Stars: ✭ 643 (+3284.21%)
Mutual labels:  gemini
Geoportal Server
Geoportal Server is a standards-based, open source product that enables discovery and use of geospatial resources including data and services.
Stars: ✭ 210 (+1005.26%)
Mutual labels:  gemini
Exchangesharp
ExchangeSharp is a powerful, fast and easy to use .NET/C# API for interfacing with many crypto currency exchanges. REST and web sockets are supported.
Stars: ✭ 489 (+2473.68%)
Mutual labels:  gemini
dollar
Gemini dollar contract source code
Stars: ✭ 79 (+315.79%)
Mutual labels:  gemini
Amfora
A fancy terminal browser for the Gemini protocol.
Stars: ✭ 395 (+1978.95%)
Mutual labels:  gemini
Cryptex
Gemini, GDAX, Bitfinex, Poloniex, Binance, Kraken, Cryptopia, Koinex, BitGrail and CoinMarketCap cryptocurrency exchange API clients in Swift / iOS SDK. Check prices and account balances using Sample iOS app.
Stars: ✭ 51 (+168.42%)
Mutual labels:  gemini
Thenextquant
Asynchronous driven quantitative trading framework.
Stars: ✭ 172 (+805.26%)
Mutual labels:  gemini
go-gemini
Client and server library for the Gemini protocol, in Go.
Stars: ✭ 45 (+136.84%)
Mutual labels:  gemini
gemini-react
Plugin, which simplifies writing gemini tests for react components
Stars: ✭ 22 (+15.79%)
Mutual labels:  gemini

Telescope

Telescope is a Emacs/w3m-inspired browser for the "small internet" that supports Gemini, Gopher and Finger.

Features:

  • tabs
  • bookmarks
  • privsep
  • minibuffer live narrowing
  • multiple protocols support
  • fully customizable

There are still various things missing or, if you prefer, various things that you can help develop :)

  • subscriptions
  • tofu oob verification
  • client certificates
  • add other GUIs: at the moment it uses only ncurses, but telescope shouldn't be restricted to TTYs only!

asciicast

Why yet another browser?

One of the great virtues of Gemini is its simplicity. It means that writing browsers or server is easy and thus a plethora of those exists. I myself routinely switch between a couple of them, depending on my mood.

More browsers brings more stability as it became more difficult to change the protocol, too.

However, Telescope was ultimately written for fun, on a whim, just to play with ncurses, libtls, libevent and the macros from sys/queue.h, but I'd like to finish it into a complete Gemini browser.

Goals

  • Fun: hacking on Telescope should be fun.
  • Clean: write readable and clean code mostly following the style(9) guideline. Don't become a kitchen sink.
  • Secure: write secure code with privilege separation to mitigate the security risks of possible bugs.
  • Fast: it features a modern, fast, event-based asynchronous I/O model.
  • Cooperation: re-use existing conventions to allow inter-operations and easy migrations from/to other clients.

TOFU

Telescope aims to use the "Trust, but Verify (where appropriate)" approach outlined here: gemini://thfr.info/gemini/modified-trust-verify.gmi.

The idea is to define three level of verification for a certificate:

  • untrusted: the server fingerprint does NOT match the stored value
  • trusted: the server fingerprint matches the stored one
  • verified: the fingerprint matches and has been verified out-of-band by the client.

Most of the time, the trusted level is enough, but where is appropriate users should be able to verify out-of-band the certificate.

At the moment there is no UI for oob-verification though.

Building

Telescope depends on ncursesw, libtls (from either LibreSSL or libretls), libevent (either v1 or v2) and pkg-config. When building from a git checkout, yacc (or bison) is also needed.

To build from a release tarball just execute:

$ ./configure
$ make
$ sudo make install

The configure script has optional support for building with libraries provided by your distribution instead of using the bundled versions:

If you want to build from the git checkout, something that's discouraged for users that don't intend to hack on telescope

$ ./autogen.sh
$ ./configure
$ make
$ sudo make install	# eventually

Please keep in mind that the main branch, from time to time, may be accidentally broken on some platforms. Telescope is developed primarily on OpenBSD/amd64 and commits on the main branch don't get always tested in other OSes. Before tagging a release however, a comprehensive testing on various platforms is done to ensure everything is working as intended.

Contributing

Any form of contribution is appreciated, not only patches or bug reports: feel free to open an issue or send an email to [email protected].

If you have a sample configuration, custom theme, a script or anything that could be helpful to others, consider adding it to the contrib directory.

User files

Telescope stores user files according to the XDG Base Directory Specification by default. The usage and contents of these files are described in the man page, under "FILES".

Only one instance of Telescope can be running at time per user.

License

Telescope is distributed under a BSD-style licence. The main code is under the ISC but for files under compat/ it varies.

data/emoji.txt is copyright © 1991-2021 Unicode, Inc. and distributed under the UNICODE, Inc license agreement.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].