# Roster A modern HTTP client for GNOME, built with GTK 4 and libadwaita. ## Features - Send HTTP requests (GET, POST, PUT, DELETE) - Configure custom headers and request bodies - View response headers and bodies with syntax highlighting - Track request history with persistence - Organize requests into projects - Environment variables with secure credential storage - JavaScript preprocessing and postprocessing scripts - Export requests (cURL and more) - GNOME-native UI ## Screenshots ### Main Interface ![Main Interface](screenshots/main.png) ### Request History ![Request History](screenshots/history.png) ### Environment Variables ![Environment Variables](screenshots/variables.png) ## Quick Start ### Installation **Build from source:** ```bash git clone https://git.bugsy.cz/beval/roster.git cd roster meson setup builddir meson compile -C builddir sudo meson install -C builddir ``` **Flatpak:** ```bash flatpak-builder --user --install --force-clean build-dir cz.bugsy.roster.json flatpak run cz.bugsy.roster ``` See the [Installation Guide](https://git.bugsy.cz/beval/roster/wiki/Installation) for detailed instructions. ### Usage Launch Roster from your application menu or run `roster` from the command line. See the [Getting Started Guide](https://git.bugsy.cz/beval/roster/wiki/Getting-Started) for a walkthrough. Complete documentation is available in the [Wiki](https://git.bugsy.cz/beval/roster/wiki): ## Key Features ### Multi-Environment Support Manage multiple environments (development, staging, production) with different variable values. Switch environments with one click. [Learn more about Variables](https://git.bugsy.cz/beval/roster/wiki/Variables) ### Secure Credential Storage Store API keys, passwords, and tokens securely in GNOME Keyring with one-click encryption. Regular variables are stored in JSON, while sensitive variables are encrypted. [Learn more about Sensitive Variables](https://git.bugsy.cz/beval/roster/wiki/Sensitive-Variables) ### JavaScript Automation Use preprocessing and postprocessing scripts to: - Extract authentication tokens from responses - Add dynamic headers (timestamps, signatures) - Chain requests together - Validate responses [Learn more about Scripts](https://git.bugsy.cz/bavel/roster/wiki/Scripts) ## Dependencies ### Runtime - GTK 4 - libadwaita 1 - Python 3 - libsoup3 (provided by GNOME Platform) - libsecret (provided by GNOME Platform) - GJS (GNOME JavaScript) ### Build - Meson (>= 1.0.0) - Ninja - pkg-config - gettext See the [Installation Guide](https://git.bugsy.cz/beval/roster/wiki/Installation) for platform-specific dependencies. ## Platform Roster is built specifically for the GNOME desktop using native technologies: - **GTK 4** - Modern UI toolkit - **libadwaita** - GNOME design patterns - **libsoup3** - HTTP networking - **libsecret** - Secure credential storage - **GJS** - JavaScript runtime for scripts ## License GPL-3.0-or-later ## Support - **Issues**: [git.bugsy.cz/beval/roster/issues](https://git.bugsy.cz/beval/roster/issues) - **Wiki**: [git.bugsy.cz/beval/roster/wiki](https://git.bugsy.cz/bavel/roster/wiki) - **Source**: [git.bugsy.cz/beval/roster](https://git.bugsy.cz/beval/roster) ## Contributing Contributions are welcome! Please open an issue or pull request.