2 个不稳定版本
0.2.0 | 2020 年 1 月 2 日 |
---|---|
0.1.0 | 2019 年 4 月 25 日 |
#273 in HTTP 客户端
23KB
449 行
Rust 语言龙虾客户端和 TUI
是什么
这是一对 Rust 库。一个实现了 lobste.rs 网站以及其他运行其代码的网站的异步 HTTP 客户端,另一个使用该客户端实现了一个终端用户界面。Lobsters 是一个面向编程的友好的链接分享社区。
此客户端库允许执行以下操作
- 获取故事
- 获取故事的评论
- 发布评论和回复
- 登录
为什么
这主要是为了练习在 Rust 中构建异步 HTTP 客户端,并获得更多关于异步生态系统的经验。然后我需要一些东西来测试客户端,所以我构建了用户界面。你可以在我的博客上了解更多关于构建客户端和 TUI 的信息。
如何
本仓库中的 lobsters-cli
库提供了库的使用示例。你可以通过下载下面的预编译二进制文件来尝试。
键盘绑定
TUI 使用以下键盘绑定
j
或↓
— 将光标向下移动k
或↑
— 将光标向上移动h
或←
— 向左滚动视图l
或→
— 向右滚动视图Enter
— 在浏览器中打开故事 URLc
— 在浏览器中打开故事评论q
或Esc
— 退出
下载
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
)。
构建
构建状态
从源码编译
注意:您需要安装Rust 编译器。
git clone https://git.sr.ht/~wezm/lobsters
cargo install --path lobsters/lobsters-cli
交叉编译
有一个脚本可以为几个平台构建二进制文件。您还需要安装arm-linux-gnueabihf
和musl
工具链,以及那些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