Julien-cpsn/ATAC
Fork: 13 Star: 536 (更新于 2024-04-18 20:21:17)
license: MIT
Language: Rust .
A simple API client (postman like) in your terminal
最后发布版本: v0.12.0 ( 2024-04-17 06:03:47)
ATAC ⚔📩
Table Of Contents
- Description
- How to install
- Features
- Documentation
- Technical precisions
- Contributors
- Star history
- License
Description
ATAC is Arguably a Terminal API Client. It is based on well-known clients such as Postman, Insomnia, or even Bruno, but inside your terminal without any specific graphical environment needed.
The philosophy of ATAC is to be free, account-less, and offline for now and forever.
How to install
Install with cargo
[!IMPORTANT] First, make sure your rust version is at least 1.76
Simply use:
cargo install atac
Install from AUR
You can use your favorite AUR helper to install. For example,
paru -S atac
Install with Homebrew
Simply use:
brew tap julien-cpsn/atac
brew install atac
Binary
The binaries from the latest release can be found here
[!IMPORTANT] Remember to run it from a terminal. For example, you can add the binary into your PATH. You won't be able to run it like other graphical applications since it needs CLI arguments.
[!TIP] Note for macOS users. After downloading the binary you may need to run the command
sudo xattr -rd com.apple.quarantine ~/bin/atac
(modify to reflect the path whereatac
is located).
Compile by yourself
[!IMPORTANT] First, make sure your rust version is at least 1.76
Simply clone the repository and use:
cargo run
cargo run -- -h
[!TIP] Build the latest release
cargo build --release
Features
Current
Features | ATAC | Postman | Insomnia |
---|---|---|---|
Manage collections & requests | :white_check_mark: | :white_check_mark: | :white_check_mark: |
HTTP Client | :white_check_mark: | :white_check_mark: | :white_check_mark: |
Methods | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- GET | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- POST | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- PUT | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- PATCH | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- DELETE | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- HEAD | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- OPTIONS | :white_check_mark: | :white_check_mark: | :white_check_mark: |
Authentication | Partial | :white_check_mark: | :white_check_mark: |
- Basic auth | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- Bearer token | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- JWT, Digest, OAuth1-2, AWS | :x: :soon: | :white_check_mark: | :white_check_mark: |
Headers | :white_check_mark: | :white_check_mark: | :white_check_mark: |
Body | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- Multipart form | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- URL Encoded form | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- File | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- Plain text | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- JSON, XML, HTML | :white_check_mark: | :white_check_mark: | :white_check_mark: |
Full response | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- Status code | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- Cookies | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- Headers | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- Duration | :white_check_mark: | :white_check_mark: | :white_check_mark: |
Scripting | :x: :soon: | Partial | :x: |
- Pre-request script | :x: :soon: | :x: | :x: |
- Post-request script | :x: :soon: | :white_check_mark: | :x: |
Asynchronous requests | :white_check_mark: | :white_check_mark: | :white_check_mark: |
Per-request settings | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- Use proxy | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- Allow redirects | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- Store cookies | :white_check_mark: | :white_check_mark: | :white_check_mark: |
WebSocket Client | :x: :soon: | :white_check_mark: | :white_check_mark: |
GraphQL | :x: (not planned) | :white_check_mark: | :white_check_mark: |
Free | :white_check_mark: | Depends | Depends |
Lightweight, fast and efficient | :white_check_mark: | :x: | :x: |
Data storage | Your own committable, readable and versioned files | Tied to your account | Tied to your account |
Offline | :white_check_mark: | :x: | :x: |
Real-time collaboration | :x: (not planned) | :white_check_mark: | :white_check_mark: |
Environment files and variables | :white_check_mark: (committable, readable and versioned) | :white_check_mark: | :white_check_mark: |
View options | :white_check_mark: | :white_check_mark: | :white_check_mark: |
Global configuration file | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- HTTP/HTTPS Proxy | :white_check_mark: | :white_check_mark: | :white_check_mark: |
- Disable CORS | :white_check_mark: | :x: | :x: |
- Toggle syntax highlighting | :white_check_mark: | :x: | :x: |
Postman v2.1.0 import | :white_check_mark: | :white_check_mark: | :white_check_mark: |
OpenAPI import | :x: :soon: | :white_check_mark: | :white_check_mark: |
TODO v1.0.0
-
To add
- Create a repo wiki
- Document whole code
-
To improve
- Sign binary
- Add file to Postman import
-
To fix
- Query parameters bug
TODO v2.0.0
-
To add
- Command line usage (send requests, add new requests)
- keymap configuration (via a config file)
- Request body syntax highlighting
- Export a request to other code formats (curl, PHP, JS, Rust, ...)
- Pre and post-request script (javascript v8 engine)
-
To improve
- Editing cookies
- Insomnia import
- Auto-completion on env file variables
- Manage multipart Content-type header (auto-generated for now)
Ideas (will think about it later)
- Base URL property on collections
Documentation
[!NOTE] Documentation will soon be published in the wiki section
Technical precisions
Tested on
- Console Host
- Windows 11 (Pro)
- WSL2 Debian
- Windows 10 (Pro)
- Windows 8.1 (N)
- Ubuntu Desktop Terminal
- Ubuntu 17.10
- Pop!_OS 20.04
- (Arch, Manjaro) KDE Konsole
- (Arch, NixOS) Kitty
- Linux Mint
- (OpenSuse) Alacritty
- (Chrome OS) Crostini
(List from here)
Dependencies
Library | Version | Reason |
---|---|---|
reqwest & reqwest cookie store | 0.11.27 & 0.6.0 | Send requests |
ratatui | 0.26.1 | Terminal UI framework |
crossterm | 0.27.0 | Terminal Backend |
tui-big-text | 0.4.2 | Display big texts. Only used for displaying ATAC in the homepage. |
tui-tree-widget | 0.19.0 | Display tree-like lists. Used for displaying the collections. |
tui-textarea | 0.5.0 | Text area that handle a lot of features. Used for editing request body. |
throbber-widgets-tui | 0.4.1 | Display loading UI elements. Used when request is pending. |
syntect | 5.2.0 | Syntax highlighting |
serde & serde_json | 1.0.197 & 1.0.144 | Serialize & Deserialize application data into JSON files |
jsonxf | 0.1.1 | Pretty print JSON |
toml | 0.8.11 | Serialize & Deserialize application config files |
envfile | 0.2.1 | Deserialize application environment files |
My fork of postman_collection | 0.2.1 | Deserialize Postman collection files |
clap | 4.5.0 | Command Line Argument Parser |
tokio | 1.0.0 | Handle asynchronous requests |
strum | 0.26.2 | Enum facilities |
lazy_static | 1.4.0 | Allows for more flexible constants. Mainly used for accessing CLI arguments everywhere |
regex | 1.10.3 | Regex. Using for parsing requests URL |
Binary size
The binary file size goes from ~4.5 MB to ~7 MB depending on the platform. I try to keep it as small as possible.
Contributors
Maintainers
Packagers
- Cargo, Brew - @julien-cpsn
- Arch - @orhun
Star history
License
The MIT license for this project can be seen here
最近版本更新:(数据更新于 2024-04-18 20:20:50)
2024-04-17 06:03:47 v0.12.0
2024-04-16 04:58:36 v0.11.3
2024-04-15 22:39:24 v0.11.2
2024-04-15 20:38:12 v0.11.1
2024-03-25 06:16:20 v0.11.0
2024-03-17 12:00:48 v0.10.1
2024-03-17 09:53:47 v0.10.0
2024-03-05 07:20:57 v0.9.0
2024-03-02 23:56:09 v0.8.1
2024-03-02 08:10:40 v0.8.0
主题(topics):
api, insomnia, postman, rust, tui
Julien-cpsn/ATAC同语言 Rust最近更新仓库
2024-05-01 09:22:51 lapce/lapce
2024-05-01 07:31:27 nushell/nushell
2024-05-01 03:48:38 tauri-apps/tauri
2024-04-30 17:52:58 EricLBuehler/mistral.rs
2024-04-30 08:32:52 rust-lang/rust-analyzer
2024-04-29 09:13:52 leptos-rs/leptos