#postman #tui #insomnia #api-client #client #api

app atac

可能是终端API客户端。功能丰富、免费、开源、离线且无需账户。

12个版本 (6个破坏性版本)

0.17.0 2024年8月18日
0.16.0 2024年6月30日
0.15.1 2024年5月3日
0.14.0 2024年4月23日
0.11.3 2024年4月15日

#48 in 网络编程

Download history 384/week @ 2024-04-30 43/week @ 2024-05-07 33/week @ 2024-05-14 39/week @ 2024-05-21 15/week @ 2024-05-28 16/week @ 2024-06-04 23/week @ 2024-06-11 7/week @ 2024-06-18 189/week @ 2024-06-25 78/week @ 2024-07-02 25/week @ 2024-07-09 12/week @ 2024-07-16 7/week @ 2024-07-23 282/week @ 2024-07-30 116/week @ 2024-08-06 222/week @ 2024-08-13

每月628次下载

MITGPL-3.0-only

490KB
9K SLoC

ATAC ⚔📩

Rust License: MIT GitHub Release

Demo Animation

目录

描述

ATAC 可能是一个 Arguably Terminal API Client。它基于Postman、Insomnia或甚至Bruno等知名客户端,但无需任何特定的图形环境即可在终端中运行。

ATAC 的理念是永远免费、无需账户和离线。

如何安装

Packaging status

crates.io package

使用 cargo 安装

[!IMPORTANT] 首先,请确保您的 Rust 版本至少为 1.79

只需使用

cargo install atac
Arch package

从 Arch 安装

您可以使用 pacman 来安装

pacman -S atac

使用 Homebrew 安装

只需使用

brew tap julien-cpsn/atac
brew install atac
Fedora copr Release

从 Fedora copr 安装

只需使用

dnf copr enable joxcat/atac
dnf install atac
GitHub Release

二进制文件

最新版本的二进制文件可以在 这里 找到

[!IMPORTANT] 请记住,您需要从终端运行它。例如,您可以将二进制文件添加到您的 PATH 中。由于它需要 CLI 参数,因此您无法像其他图形应用程序那样运行它。

[!TIP] 注意 macOS 用户。下载二进制文件后,您可能需要运行以下命令 sudo xattr -rd com.apple.quarantine ~/bin/atac(修改以反映 atac 所在的路径)。

自行编译

[!IMPORTANT] 首先,请确保您的 Rust 版本至少为 1.79

只需克隆仓库并使用

cargo run
cargo run -- -h

[!TIP] 构建 最新版本

cargo build --release

功能

当前

功能 ATAC Postman Insomnia
管理集合与请求
HTTP 客户端
方法
- GET
- POST
- PUT
- PATCH
- DELETE
- HEAD
- OPTIONS
身份验证 部分
- 基本身份验证
- 携带令牌
- JWT, 摘要, OAuth1-2, AWS ❌ 🔜
头部
主体
- 多部分表单
- URL 编码表单
- 文件
- 纯文本
- JSON, XML, HTML, JavaScript
完整响应
- 状态码
- Cookies
- 头部
- 持续时间
脚本 部分
- 预请求脚本
- 请求后脚本
异步请求
每个请求的设置
- 使用代理
- 允许重定向
- 存储Cookies
导出到其他语言 ❌ 🔜
WebSocket客户端 ❌ 🔜
GraphQL ❌ 🔜
gRPC ❌ 🔜
MQTT ❌ 🔜
免费 依赖 依赖
轻量、快速和高效
数据存储 您自己的可提交、可读和有版本的文件(JSON或YAML) 与您的账户绑定 与您的账户绑定
离线
实时协作 ❌(未计划)
完整命令行使用 部分 :w
环境文件和变量 ✅(可提交、可读和有版本)
查看选项
全局配置文件
- HTTP/HTTPS代理
- 禁用CORS
- 切换语法高亮
Postman v2.1.0导入
OpenAPI导入 ❌ 🔜

待办事项 v1.0.0

  • 要添加

    • 记录整个代码
    • 取消挂起的请求
    • 在TUI中显示错误通知
    • 请求主体语法高亮
    • 将请求导出到其他代码格式(raw、curl、PHP、JS、Rust、...)
    • OpenAPI & Insomnia导入
  • 要改进

  • 要修复

    • 查询参数错误

待办事项 v2.0.0

  • 要添加
    • WebSocket请求
    • 可能是GraphQL请求
    • 可能是MQTT请求
    • 可能是gRPC请求

想法(稍后考虑)

  • 基本URL属性和集合上的授权
  • VScode插件查看和发送请求
  • Scoop安装

文档

以下是文档: https://atac.julien-cpsn.com/

如果您认为缺少什么,请贡献!

其他

Vim 快捷键绑定

您可以在这里了解更多: https://github.com/Julien-cpsn/ATAC/releases/tag/v0.14.0

NeoVim 集成

感谢@NachoNievaG,您可以在nvim中拥有一个ATAC浮动窗口 https://github.com/NachoNievaG/atac.nvim

技术细节

测试平台

  • 控制台主机
    • Windows 11(专业版)
    • WSL2 Debian 12
    • Windows 10(专业版)
    • Windows 8.1(N版)
  • Ubuntu桌面终端
    • Ubuntu 23.04 64位
    • Ubuntu 17.10
    • Pop!_OS 20.04
  • (Arch, Manjaro) KDE Konsole
  • (Arch, NixOS) Kitty
  • Linux Mint
  • (OpenSuse) Alacritty
  • (Chrome OS) Crostini
  • Apple
    • macOS Monterey 12.7.1(Intel芯片)
    • macOS Sonama 14.4(M1 Max,Apple硅芯片)

(列表来自 这里)

依赖项

类别/库 版本 原因
请求
reqwest & reqwest cookie store 0.12.5 & 0.8.0 发送请求
TUI
ratatui 0.28.0 终端UI框架
crokey 1.1.0 用于解析、使用键绑定文件和一些实用工具
tui-big-text 0.6.0 显示大文本。仅用于主页上显示ATAC。
tui-tree-widget 0.22.0 显示树形列表。用于显示集合。
tui-textarea 0.6.1 具有许多功能的文本区域。用于编辑请求体。
throbber-widgets-tui 0.6.0 显示加载UI元素。用于请求待处理时。
ratatui-image 1.0.5 显示响应图像。
image 0.25.2 解码图像。
主要功能
syntect 5.2.0 语法高亮
serde (serde_json, serde-yaml) 1.0.208 (1.0.125, 0.9.34) 将应用数据序列化/反序列化为文件
jsonxf 1.1.1 美化打印JSON
toml 0.8.19 序列化/反序列化应用配置文件
boa_engine 0.19.0 创建JavaScript运行时。用于预请求和后请求脚本
我的分支 postman_collection 0.2.3 反序列化Postman集合文件
curl-parser 0.3.1 解析cURL请求文件
clap 4.5.16 命令行参数解析器
dirs 5.0.1 使用系统文件
arboard 3.4.0 将响应体复制到剪贴板
Async
tokio 1.39.3 处理异步请求
parking_lot 0.12.3 比RwLock和Mutex更小、更快、更灵活的实现。到处使用。
工具
strum 0.26.3 枚举设施
lazy_static 1.5.0 允许更灵活的常量。主要用于在各个地方访问CLI参数
rayon 1.10.0 允许在for循环中使用多个线程
nestify 0.3.3 用于嵌套结构定义
walkdir 2.5.0 递归检索文件
snailquote 0.3.1 取消转义字符串
indexmap 2.4.0 有序哈希表。用于在环境中保留文件值的顺序
thiserror 1.0.63 创建自定义错误
anyhow 1.0.86 可以包含任何错误的Result
clap-verbosity-flag 2.2.1 将详细程度标志添加到CLI
clap_complete 4.5.18 生成完成文件
clap_mangen 0.2.23 生成手册页
base64 0.22.1 编码认证。
regex 1.10.6 正则表达式。用于解析请求URL
chrono 0.4.38 时间工具
uuid 1.10.0 UUID生成器
跟踪/日志
tracing 0.1.40 记录事件
tracing-subscriber 0.3.18 实现和组合跟踪订阅者的工具
tracing-log 0.2.0 与tracing兼容的日志crate
reqwest-tracing 0.5.3 reqwest-middleware的正则表达式中间件实现
reqwest-middleware 0.3.3 reqwest的包装器,允许客户端中间件链

二进制大小

二进制文件大小从约4.5 MB增加到约7 MB,取决于平台。我尽量保持它尽可能小。

贡献者

维护者

打包者

星标历史

Star History Chart

许可

此项目的MIT许可证可在此处查看

依赖项

~45–66MB
~1M SLoC