Flags

  Usage: fauxrpc curl [<method>] [flags]

Make requests with fake data

Arguments:
  [<method>]    Service or method name.

Flags:
  -h, --help                            Show context-sensitive help.
  -l, --log-level="info"                Set the logging level (debug|info|warn|error)
      --version                         Print version information and quit

      --schema=SCHEMA,...               RPC schema modules.
      --stubs=STUBS,...                 Stub files to use for data generation.
  -a, --addr="http://127.0.0.1:6660"    Address to make a request to
  -p, --protocol="grpc"                 Protocol to use for requests.
  -e, --encoding="proto"                Encoding to use for requests.
      --http2-prior-knowledge           This flag can be used to indicate that HTTP/2 should be used.
      --http-3                          Enables HTTP/3.
  

Here is a comprehensive list of all the flags available for the fauxrpc curl command.

FlagDefaultDescription
Target & Schema
[<method>](none)The target service or method name to call (e.g., my.service.v1.UserService/GetUser). If omitted, fauxrpc curl will attempt to call all methods in the schema.
--schema=...(none)📜 Specifies the source for the RPC schema. It can be a local file path, a directory, or a URL. If not provided, the command will rely on server reflection.
--stubs=...(none)A comma-separated list of YAML or JSON files containing stubs. When provided, fauxrpc curl will use these stubs to generate the request data instead of random generation.
-a, --addrhttp://127.0.0.1:6660The full address of the server to send the request to.
Protocol & Encoding
-p, --protocolgrpcThe protocol to use for the request. Valid options are grpc, grpc-web, and connect.
-e, --encodingprotoThe encoding to use for the request payload. Valid options are proto and json.
--http2-prior-knowledgefalseUse this flag to connect to a gRPC server that does not use TLS, indicating that the client should use HTTP/2 directly without an initial HTTP/1.1 upgrade request.
--http-3falseEnables experimental HTTP/3 support for the request.
General
-l, --log-levelinfoSets the logging verbosity. Available levels are debug, info, warn, and error.
--versionfalsePrints the current fauxrpc version information and then exits.
-h, --helpfalseShows a summary of the command and its flags.

Practical Examples

Test All Methods

This command uses a remote schema from the Buf Schema Registry to discover all available RPCs and sends a request with fake data to each one. This is a great way to perform a quick smoke test on an entire service.

  fauxrpc curl \
  --http2-prior-knowledge \
  --schema=buf.build/bufbuild/registry
  

Specific Method

To target a single method, simply provide its fully qualified name as an argument after the flags.

  fauxrpc curl \
  --http2-prior-knowledge \
  --schema=buf.build/bufbuild/registry \
  buf.registry.plugin.v1beta1.LabelService/ListLabels
  

Server Reflection

If the target server has reflection enabled, you don’t need to provide a –schema. fauxrpc curl will automatically query the server to determine how to construct the request.

  # Assuming the server at the default address has reflection enabled
fauxrpc curl \
  --http2-prior-knowledge \
  buf.registry.plugin.v1beta1.LabelService/ListLabels
  

Target gRPC-Web

You can easily switch protocols to test different server implementations, like a gRPC-Web service that uses JSON encoding.

  fauxrpc curl \
  --addr=http://localhost:8080 \
  --protocol=grpc-web \
  --encoding=json \
  my.webapp.v1.AuthService/Login
  

Use Stubs

You can provide stub definitions to control the data sent in the request. This is useful for testing specific scenarios or ensuring consistent request data.

  fauxrpc curl \
  --schema=buf.build/connectrpc/eliza \
  --stubs=stubs.yaml \
  connectrpc.eliza.v1.ElizaService/Say
  

Where stubs.yaml contains:

  stubs:
  - target: connectrpc.eliza.v1.ElizaService/Say
    content:
      sentence: "Hello from stubs!"
  

Streaming

fauxrpc curl supports streaming requests. If the method accepts a stream, fauxrpc curl will send multiple messages. You can control this behavior using stubs with the stream configuration to define the sequence of messages to send.

  stubs:
  - target: connectrpc.eliza.v1.ElizaService/Converse
    stream:
      items:
        - content: { sentence: "Hello" }
          delay: 100ms
        - content: { sentence: "How are you?" }
          delay: 500ms
  

Last updated 29 May 2026, 19:21 +0200 . history