envoyproxy / envoyproxy/nighthawk

Send an arbitrary (binary) request body from a file

Open
#1,608 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
414
Forks
95
Avg merge
2d 9h
Merged PRs (30d)
11

Description

*Title*: Send an arbitrary (binary) request body from a file

*Description*:
Nighthawk can only send a synthetic body (`--request-body-size`, repeated 'a') or, through a request source plugin, `json_body`, which is a proto3 `string` and must be UTF-8. There is no way to send an arbitrary payload such as a serialized protobuf message or a fixed JSON document from a file. Desired: `--request-body-file ` sending the file's bytes verbatim on every request, binary safe, with the body carried in a `bytes` field of `RequestOptions` for the gRPC service API. This enables benchmarking POST endpoints with realistic payloads and is a prerequisite for gRPC load generation (#24).

*Relevant Links*:
#24

Contributor guide

Open the contributing guide

Research direction

Start by tracing the existing --request-body-size handling and the RequestOptions definition in the gRPC service API; the issue does not name specific files or tests. Follow how request bodies reach each request, then verify that --request-body-file sends the file bytes unchanged on every request and that the API carries them in a bytes field, including the binary-payload use case described in #24.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, grpc
Domain
api, cli
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.