7 releases (stable)
new 2.2.0 | Oct 22, 2024 |
---|---|
2.1.0 | Sep 27, 2024 |
2.0.0-beta.1 | Aug 28, 2024 |
1.8.1 | Aug 11, 2024 |
#7 in #client-config
350 downloads per month
Used in 3 crates
(2 directly)
470KB
11K
SLoC
Slumber
Slumber is a TUI (terminal user interface) HTTP client. Define, execute, and share configurable HTTP requests. Slumber is built on some basic principles:
- It will remain free to use forever
- You own your data: all configuration and data is stored locally and can be checked into version control
- It will never be enshittified
Features
- Usable as a TUI or CLI
- Source-first configuration, for easy persistence and sharing
- Import from external formats (e.g. Insomnia)
- Build requests dynamically from other requests, files, and shell commands
- Browse response data using JSONPath selectors
- Switch between different environments easily using profiles
- And more!
Examples
Slumber is based around collections. A collection is a group of request recipes, which are templates for the requests you want to run. A simple collection could be:
# slumber.yml
requests:
get: !request
method: GET
url: https://httpbin.org/get
post: !request
method: POST
url: https://httpbin.org/post
body: !json { "id": 3, "name": "Slumber" }
Create this file, then run the TUI with slumber
.
For a more extensive example, see the docs.
lib.rs
:
App configuration. Some config fields apply to core functionality, while
some are interface-specific. While it's maybe not the "best" design, we
compile them all into one crate to give consistent behavior between the
CLI and TUI. Specifically, it allows the slumber show config
command to
show exactly what the TUI is actually using.
The downside of this is we have to pull in some types that are specific to the TUI, because they relate to configuration. By putting this in a separate crate, instead of the core crate, it at least pushes those dependencies down the compile chain a bit further.
Dependencies
~42–58MB
~1M SLoC