#client #tui #async #terminal-window #website #lobste

lobsters

为 lobste.rs 网站提供的异步 HTTP 客户端

2 个不稳定版本

0.2.0 2020 年 1 月 2 日
0.1.0 2019 年 4 月 25 日

#273 in HTTP 客户端

MIT/Apache

23KB
449

Rust 语言龙虾客户端和 TUI

crates.io Documentation

Screenshot of lobsters in a terminal window

是什么

这是一对 Rust 库。一个实现了 lobste.rs 网站以及其他运行其代码的网站的异步 HTTP 客户端,另一个使用该客户端实现了一个终端用户界面。Lobsters 是一个面向编程的友好的链接分享社区。

此客户端库允许执行以下操作

  • 获取故事
  • 获取故事的评论
  • 发布评论和回复
  • 登录

为什么

这主要是为了练习在 Rust 中构建异步 HTTP 客户端,并获得更多关于异步生态系统的经验。然后我需要一些东西来测试客户端,所以我构建了用户界面。你可以在我的博客上了解更多关于构建客户端和 TUI 的信息。

如何

本仓库中的 lobsters-cli 库提供了库的使用示例。你可以通过下载下面的预编译二进制文件来尝试。

键盘绑定

TUI 使用以下键盘绑定

  • j — 将光标向下移动
  • k — 将光标向上移动
  • h — 向左滚动视图
  • l — 向右滚动视图
  • Enter — 在浏览器中打开故事 URL
  • c — 在浏览器中打开故事评论
  • qEsc — 退出

下载

lobsters 是一个适用于少数平台的单个二进制文件。要下载最新版本,请执行以下操作

  • FreeBSD 12.0 x86_64
    • curl -Lhttps://releases.wezm.net/lobsters/lobsters-0.1.0-x86_64-unknown-freebsd.tar.gz | tarzxf -
  • Linux x86_64
    • curl -Lhttps://releases.wezm.net/lobsters/lobsters-0.1.0-x86_64-unknown-linux-musl.tar.gz | tarzxf -
  • macOS x86_64
    • curl -Lhttps://releases.wezm.net/lobsters/lobsters-0.1.0-x86_64-apple-darwin.tar.gz | tarzxf -
  • NetBSD 8.0 x86_64
    • curl -Lhttps://releases.wezm.net/lobsters/lobsters-0.1.0-x86_64-unknown-netbsd.tar.gz | tarzxf -
  • OpenBSD 6.5 x86_64
    • curl -Lhttps://releases.wezm.net/lobsters/lobsters-0.1.0-x86_64-unknown-openbsd.tar.gz | tarzxf -
  • Raspberry Pi
    • curl -Lhttps://releases.wezm.net/lobsters/lobsters-0.1.0-arm-unknown-linux-gnueabihf.tar.gz | tarzxf -

二进制文件应在你的当前目录中,可以按以下方式运行

./lobsters

你可以随意将其移动到其他位置(例如 ~/.local/bin)。

构建

构建状态

  • Debian: builds.sr.ht Debian 状态
  • FreeBSD: builds.sr.ht FreeBSD 状态

从源码编译

注意:您需要安装Rust 编译器

git clone https://git.sr.ht/~wezm/lobsters
cargo install --path lobsters/lobsters-cli

交叉编译

有一个脚本可以为几个平台构建二进制文件。您还需要安装arm-linux-gnueabihfmusl工具链,以及那些rustup目标。

./build-all-platforms

已知限制

  • 尚未实现支持双因素认证登录

测试

运行测试套件

cargo test

贡献

如果您有希望贡献的代码或补丁,首选机制是发送git pull请求。将您的更改推送到某个地方的git仓库(Sourcehut、GitHub、GitLab等)。确保贡献不会破坏测试,并在适当的时候添加新的测试。

假设您已经按照上面的构建步骤进行操作,您会这样做以将更改推送到Sourcehut上的自己的分支,将git URL更改为匹配您的分支位置

git remote rename origin upstream
git remote add origin [email protected]:~yourname/lobsters
git push -u origin master

然后生成pull请求

git fetch upstream master
git request-pull -p upstream/master origin

然后将结果复制粘贴到纯文本电子邮件中发送到[email protected]

您还可以使用https://git-send-email.io上描述的基于补丁的方法。

许可证

本项目采用双重许可证

依赖项

~31MB
~726K SLoC