vesp a73b838c7f Add left sidebar for managing saved requests in projects
Implement a 3-column layout with a collapsible sidebar for organizing
and managing HTTP requests within projects. Requests are stored in
~/.roster/requests.json for easy git versioning.

Features:
- Create, rename, and delete projects
- Save current request to a project with custom name
- Load saved requests with direct click (no confirmation dialog)
- Delete saved requests with confirmation
- Expandable/collapsible project folders
- Context menu for project actions

Technical changes:
- Add SavedRequest and Project data models with JSON serialization
- Implement ProjectManager for persistence to ~/.roster/requests.json
- Create RequestItem and ProjectItem widgets with GTK templates
- Restructure main window UI to nested GtkPaned (3-column layout)
- Add project management dialogs using AdwAlertDialog
- Update build system with new source files and UI resources
2025-12-18 15:16:21 +01:00

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
  • Track request history with persistence
  • Beautiful GNOME-native UI

Dependencies

  • GTK 4
  • libadwaita 1
  • Python 3
  • HTTPie (http command)

Building

meson setup builddir
meson compile -C builddir
sudo meson install -C builddir

Usage

Roster uses HTTPie as the backend for making HTTP requests. Ensure HTTPie is installed:

pip install httpie
# or on Fedora
sudo dnf install httpie

Then run Roster from your application menu or with the roster command.

Description
HTTP client for GNOME
Readme 1.6 MiB
Languages
Python 98.6%
Meson 1.4%