{"id":18484536,"url":"https://github.com/raquentin/raquest","last_synced_at":"2025-04-08T18:33:26.209Z","repository":{"id":252551324,"uuid":"840769496","full_name":"raquentin/raquest","owner":"raquentin","description":"🏓 A domain-specific language for repeatable HTTP requests.","archived":false,"fork":false,"pushed_at":"2025-03-05T21:42:55.000Z","size":414,"stargazers_count":4,"open_issues_count":8,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T13:06:37.795Z","etag":null,"topics":["cpp","curl","dsl","http"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raquentin.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-10T16:20:18.000Z","updated_at":"2025-03-05T21:42:58.000Z","dependencies_parsed_at":"2024-09-06T04:43:53.581Z","dependency_job_id":"2f7d71ff-3d76-46ef-b45b-4530c855696f","html_url":"https://github.com/raquentin/raquest","commit_stats":null,"previous_names":["raquentin/raquest"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raquentin%2Fraquest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raquentin%2Fraquest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raquentin%2Fraquest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raquentin%2Fraquest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raquentin","download_url":"https://codeload.github.com/raquentin/raquest/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247902891,"owners_count":21015543,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","curl","dsl","http"],"created_at":"2024-11-06T12:40:34.242Z","updated_at":"2025-04-08T18:33:26.187Z","avatar_url":"https://github.com/raquentin.png","language":"C++","readme":"# 🏓 raquest\n\nRaquest is a batteries-excluded command-line HTTP client. No monthly subscriptions or two minute ads to send requests, just run `raq \u003cquery\u003e.raq` and move on with your life.\n\n## Features\n\n### `.raq` files\n\nRequests are stored written in `'.raq'` files and resemble `curl` commands in bash scripts. The files consist of sections defining the request, its headers, its json payload, and assertions, which assert certain attributes of the repsonse. View these sections in action in the [examples](/examples) or conceptually below:\n\n#### [request]\n```\n[request]\nPOST https://jsonplaceholder.typicode.com/posts\n```\nThe `[request]` section is generally found at the top of the file and defines the HTTP method and the target url.\n\n#### [headers]\n```\n[headers]\nAuthorization: Bearer exampletoken12345\nContent-Type: application/json\nCustom-Header: custom_value\n```\nThe `[headers]` section defines key-value header pairs.\n\n#### [body]\n```\n[body]\n{\n  \"title\": \"foo\",\n  \"age\": 30,\n  \"isActive\": true,\n  \"description\": \"here is the description\"\n}\n```\nThe `[body]` section contains the request payload; its type is inferred from the `Content-Type` header in the `[headers]` section.\n\n#### [assertions]\n```\n[assertions]\nstatus: 201, 303\njson_field: title ^foo$\njson_field: age 30\njson_field: isActive true\njson_field: description here is the description\n```\n`[assertions]` is an optional section that allows you to assert certain attributes of your request's response.\n\n## Development\n\n### Dependencies\n- cmake 3.24\n- clang 18 and/or gcc 14\n\n### Commands\n\nBefore anything, build and enter the development environment with `nix develop`.\n\n#### Run CMake\n```bash\ncmake -G Ninja -S . -B build\n```\n\n#### Build\n```bash\nninja -C build\n```\n\n#### Run Tests\n```bash\nninja runtests -C build\nninja memcheck -C build\nninja valgrind -C build\n```\n\n#### Clangd Setup\nI'm using the Clangd C++ LSP. Run the command below to make it aware of your linked libraries.\n\n```bash\ncmake -S . -B build -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=1\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraquentin%2Fraquest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraquentin%2Fraquest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraquentin%2Fraquest/lists"}