#gemini #client #gopher #cli

app ncgopher

现代互联网的ncurses Gopher和Gemini客户端

9个版本 (5个重大变更)

0.6.0 2023年12月3日
0.5.0 2022年11月7日
0.4.0 2022年5月23日
0.3.0 2021年11月21日
0.1.2 2020年3月14日

#1223 in 网络编程

每月36次下载

BSD-2-Clause

210KB
4.5K SLoC

ncgopher

ncgopher 是现代互联网的Gopher、Gemini和Finger客户端。它使用ncurses,用Rust编写。

gopher

Gopher是在1991年由明尼苏达大学开发的,并以学校的吉祥物命名。Gopher是一种菜单驱动的界面,允许用户在各种Gopher服务器上浏览文本信息。

gemini

Gemini是一种新的应用级互联网协议,用于分发任意文件,并特别考虑了服务于轻量级超文本格式,以便于文件之间的链接。

截图

必须的截图

img

img

功能

  • Gopher、Gemini和Finger支持
  • Ncurses界面
  • 键盘命令导航
  • 书签支持,包括自定义标题
  • 访问过的Gopher洞的历史记录
  • 下载文本文件和Gophermap(另存为…)
  • 下载二进制文件
  • 易于配置的菜单
  • 某些终端中的鼠标支持
  • TLS支持
  • 暗黑模式!
  • 外部命令用于HTML、图像和Telnet
  • 文本中的类似Vi的搜索
  • 书签、历史记录以及禁用历史记录记录的选项

安装

Arch Linux

Arch Linux用户可以使用pacman安装ncgopher

sudo pacman -S ncgopher-git

NixOS

NixOS用户可以使用nix-env安装ncgopher

nix-env -iA nixos.ncgopher

NetBSD

NetBSD用户可以使用pkgin安装ncgopher

pkgin install ncgopher

所有其他系统

ncgopher 目前没有复杂的安装过程。有一些外部依赖项需要安装。首先,当然你需要安装Rust。其他依赖项包括 opensslncursessqlite3 库。如果这些没有安装,构建将失败,但你很可能会知道缺少什么。


基于Debian的Linux

sudo apt install build-essential pkg-config libssl-dev libncurses-dev libsqlite3-dev

基于Arch的Linux

sudo pacman -S base-devel pkg-config openssl ncurses sqlite

OpenBSD

doas pkg_add sqlite3 rust

MSYS2(Windows,MINGW64终端)

pacman -S base-devel mingw-w64-x86_64-pkgconf mingw-w64-x86_64-rust mingw-w64-x86_64-ncurses mingw-w64-x86_64-openssl mingw-w64-x86_64-sqlite3

如果你知道如何在你的操作系统上安装所列的依赖项,并且它没有列出,请提交一个pull request以添加它。

安装这些依赖项后运行

cargo install ncgopher

要安装最新开发版本

git clone https://github.com/jansc/ncgopher.git
cd ncgopher
cargo build
cargo run

键盘快捷键

在alpha版本中,快捷键不可配置,许多功能尚未实现。

按键 命令
箭头键 在文本中移动
Enter 打开光标下的链接
Esc 转到菜单栏
空格 向下滚动一页
g 打开新的URL
G 编辑当前URL
b 后退
q 关闭应用程序
s 保存当前页面
r 重新加载当前页面
i 显示光标下的链接
a 为当前页面添加书签
l 转到下一个链接
L 转到上一个链接
j 向下移动一行
k 向上移动一行
/ 在文本中搜索
n 转到下一个搜索结果
N 转到上一个搜索结果

鼠标支持

ncgopher支持菜单和对话框中的按钮的鼠标交互。如果您想选择文本,大多数终端在按下SHIFT时支持选择。

调试

该软件仍处于beta版本,这也是我第一个用Rust编写的应用程序。预期会有很多错误和写得不好的Rust代码。

如果应用程序崩溃,我会对日志文件感兴趣。要生成一个,请使用命令行标志-d和要存储日志的文件名重新运行程序,例如"error.log"。它看起来可能像这样:ncgopher -d error.log这将将日志消息追加到error.log(如果文件不存在,则创建文件)。使用此方法,尝试重现错误并注意回溯输出。

如果您知道如何做,并且安装了源代码,您可以使用RUST_BACKTRACE运行程序以获取回溯。

许可证

ncgopher根据BSD 2条款许可证授权。

版权所有(c)2019-2022 ncgopher 作者。状态栏实现的部分版权所有(c)2019,Henrik Friedrichsen

依赖项

~41–56MB
~1M SLoC