2
0
mirror of https://github.com/xvxx/phetch synced 2024-11-05 00:00:58 +00:00
Go to file
2020-01-27 23:28:42 -08:00
.cargo Have the linker strip the binary (cross-compile friendly) 2020-01-11 12:38:05 -08:00
.github/workflows ci -> build 2020-01-27 23:28:42 -08:00
benches add some criterion benchmarks 2020-01-27 23:08:16 -08:00
doc update manual 2020-01-11 16:30:51 -08:00
img fix border 2019-12-23 23:52:34 -08:00
src add some criterion benchmarks 2020-01-27 23:08:16 -08:00
.gitignore add criterion 2020-01-27 22:39:02 -08:00
build.rs don't crash the build if git isn't available 2020-01-13 16:40:18 -08:00
Cargo.lock wrong version 2020-01-27 23:14:11 -08:00
Cargo.toml wrong version 2020-01-27 23:14:11 -08:00
CHANGELOG.md more specific 2020-01-27 23:24:17 -08:00
LICENSE MIT 2019-12-17 16:49:03 -08:00
Makefile Have the linker strip the binary (cross-compile friendly) 2020-01-11 12:38:05 -08:00
README.md more ctrl-c 2020-01-27 23:27:48 -08:00


phetch is a terminal client designed to help you quickly navigate the gophersphere.

features

  • <1MB executable for Linux and Mac
  • Technicolor design (based on GILD)
  • No-nonsense keyboard navigation
  • Supports Gopher searches, text and menu pages, and downloads
  • Save your favorite Gopher sites with bookmarks
  • Opt-in history tracking
  • Secure Gopher support (TLS)
  • Tor support

usage

    phetch [options]       Launch phetch in interactive mode
    phetch [options] url   Open Gopher URL in interactive mode

Options:

    -s, --tls              Try to open Gopher URLs securely w/ TLS
    -o, --tor              Use local Tor proxy to open all pages
    -S, -O                 Disable TLS or Tor

    -r, --raw              Print raw Gopher response only
    -p, --print            Print rendered Gopher response only
    -l, --local            Connect to 127.0.0.1:7070

    -c, --config FILE      Use instead of ~/.config/phetch/phetch.conf
    -C, --no-config        Don't use any config file

    -h, --help             Show this screen
    -v, --version          Show phetch version

Command line options always override options set in phetch.conf.

Once you've launched phetch, use `ctrl-h` to view the on-line help.

installation

If you already have a Gopher client, download phetch here:

gopher://phkt.io/1/phetch/latest

On macOS you can install with Homebrew:

brew install xvxx/code/phetch

Binaries for Linux, Raspberry Pi, and Mac are available at https://github.com/xvxx/phetch/releases:

Just unzip/untar the phetch program into your $PATH and get going!

You can also build and install from source if you have cargo, make, and the other dependencies described in the next section:

git clone https://github.com/xvxx/phetch
cd phetch
env PREFIX=/usr/local make install

development

To build with TLS support on Linux, you need openssl and pkg-config:

sudo apt install -y pkg-config libssl-dev

Regular development uses cargo:

cargo run -- <gopher-url>

Pro-tip: Run a local gopher server (like phd) on 127.0.0.1:7070 and start phetch with -l or --local to quickly connect to it.

phetch builds with TLS and Tor support by default. To disable these features, or to enable only one of them, use the --no-default-features flag:

cargo build --no-default-features

You can check whether TLS is enabled by visiting the About page:

cargo run --no-default-features -- gopher://phetch/about

To enable just TLS support, or just Tor support, use --features:

cargo run --no-default-features --features tor -- gopher://phetch/about

screenies

DOS Archive Floodgap
DOS Archive Floodgap

todo

  • catch SIGWINCH

bugs

  • ctrl+c doesn't cancel load()
  • ctrl-c while telneting kills phetch
  • unknown keypress: [ during status messages
  • new status doesn't replace old (download complete -> copy url)

v1.0

  • GIF screencast

future features

  • track binary size per release
  • text views are menus when URLs are present (one per line max)
  • Find Text in Text views
  • fuzzy find incremental search
  • persistent history
  • bookmarks: toggle instead of just prepending to the file
  • bookmarks: save the title of the current page