{"id":15074421,"url":"https://github.com/sudorandom/fauxrpc","last_synced_at":"2026-02-19T10:06:22.243Z","repository":{"id":253289447,"uuid":"843054872","full_name":"sudorandom/fauxrpc","owner":"sudorandom","description":"Easily start a fake gRPC/gRPC-Web/Connect/REST server from protobufs","archived":false,"fork":false,"pushed_at":"2025-02-07T14:44:04.000Z","size":2161,"stargazers_count":91,"open_issues_count":3,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-31T12:09:33.658Z","etag":null,"topics":["api","connectrpc","grpc","grpc-web","rest-api"],"latest_commit_sha":null,"homepage":"https://fauxrpc.com","language":"Go","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/sudorandom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-15T17:24:23.000Z","updated_at":"2025-03-24T07:23:24.000Z","dependencies_parsed_at":"2025-01-15T06:10:08.079Z","dependency_job_id":"43336fe8-831e-44ef-bae1-74581dffb6b1","html_url":"https://github.com/sudorandom/fauxrpc","commit_stats":{"total_commits":64,"total_committers":3,"mean_commits":"21.333333333333332","dds":0.046875,"last_synced_commit":"387d76a531dcb44b9e58e10e5d272c9bbdf2f31c"},"previous_names":["sudorandom/fauxrpc"],"tags_count":37,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudorandom%2Ffauxrpc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudorandom%2Ffauxrpc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudorandom%2Ffauxrpc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudorandom%2Ffauxrpc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sudorandom","download_url":"https://codeload.github.com/sudorandom/fauxrpc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247657275,"owners_count":20974344,"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":["api","connectrpc","grpc","grpc-web","rest-api"],"created_at":"2024-09-25T03:32:55.109Z","updated_at":"2026-02-19T10:06:22.235Z","avatar_url":"https://github.com/sudorandom.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"![](\u003cassets/logo-wide.jpg\u003e)\n\n# FauxRPC\n[![Go](https://github.com/sudorandom/fauxrpc/actions/workflows/go.yml/badge.svg)](https://github.com/sudorandom/fauxrpc/actions/workflows/go.yml) [![Go Report Card](https://goreportcard.com/badge/github.com/sudorandom/fauxrpc)](https://goreportcard.com/report/github.com/sudorandom/fauxrpc) [![Go Reference](https://pkg.go.dev/badge/github.com/sudorandom/fauxrpc.svg)](https://pkg.go.dev/github.com/sudorandom/fauxrpc)\n\n[FauxRPC](https://fauxrpc.com) is a powerful tool that empowers you to accelerate development and testing by effortlessly generating fake implementations of gRPC, gRPC-Web, Connect, and REST services. If you have a protobuf-based workflow, this tool could help.\n\n## Why FauxRPC?\n* **Faster Development \u0026 Testing:** Work independently without relying on fully functional backend services.\n* **Isolation \u0026 Control:** Test frontend components in isolation with controlled fake data.\n* **Multi-Protocol Support:** Supports multiple protocols (gRPC, gRPC-Web, Connect, and REST).\n* **Prototyping \u0026 Demos:** Create prototypes and demos quickly without building the full backend. Fake it till you make it.\n* **API Stubs:** Define static or dynamic API responses with powerful stubs featuring [CEL expressions](https://cel.dev/) for precise behavior control. Stubs can be defined using config files or dynamically at runtime.\n* **Improved Collaboration:** Bridge the gap between frontend and backend teams.\n* **Plays well with others:** Test data from FauxRPC will try to automatically follow any [protovalidate](https://github.com/bufbuild/protovalidate) constraints that are defined.\n* **Request Validation:** Ensure data integrity with automatic request validation using [protovalidate](https://github.com/bufbuild/protovalidate). Catch errors early and prevent invalid data from reaching your application logic.\n\nSee the [the documentation website](https://fauxrpc.com) for more!\n\n## Get Started\n\n### Install via source\n```\ngo install github.com/sudorandom/fauxrpc/cmd/fauxrpc@v0.19.2\n```\n\n### Pre-built binaries\nBinaries are built for several platforms for each release. See the latest ones on [the releases page](https://github.com/sudorandom/fauxrpc/releases/latest).\n\n--------------\n\n## Usage\n\n### Running the Server\n\nThe core command is `fauxrpc run`, which starts the server based on your Protobuf schema. You can combine flags to configure the server on startup.\n\nFor example, this command starts the server with a specific schema, loads a stub for a method, and enables the dashboard:\n\n```shell\nfauxrpc run --schema=buf.build/connectrpc/eliza --stubs=example/stubs.eliza --dashboard\n```\n\n### Loading Schemas\n\nYou must provide Protobuf descriptors so FauxRPC knows which services to fake. Schemas can be loaded from multiple sources, and you can mix and match them.\n\n#### From a local file:\n\n```shell\nfauxrpc run --schema=service.binpb\n```\n\n#### From the Buf Schema Registry (BSR)\n\n```shell\nfauxrpc run --schema=buf.build/bufbuild/eliza\n```\n\n#### From multiple sources at once\n```shell\nfauxrpc run --schema=service.binpb --schema=buf.build/bufbuild/eliza\n```\n\n## Using Stubs\n\nWhile FauxRPC generates random fake data by default, **stubs** let you define specific, predictable responses for your RPCs. This is great for testing specific scenarios.\n\nYou can load a single stub file or an entire directory of them.\n\n#### Load a single stub file\n\n```shell\nfauxrpc run --schema=eliza.binpb --stubs=example/stubs.eliza/say.json\n```\n\n#### Load all stubs from a directory\n```shell\nfauxrpc run --schema=eliza.binpb --stubs=example/stubs.eliza/\n```\n\n## Making Requests with `fauxrpc curl`\n\nFauxRPC includes a handy built-in client, `fauxrpc curl`, for making requests to your services without needing external tools. It automatically sources the schema to provide a seamless testing experience.\n\n### Hit all RPCs in a service with default data\n\n```shell\nfauxrpc curl --http2-prior-knowledge --schema=buf.build/bufbuild/registry\n```\n\n#### Hit a specific RPC\n\n```shell\nfauxrpc curl --http2-prior-knowledge --schema=buf.build/bufbuild/registry buf.registry.plugin.v1beta1.LabelService/ListLabels\n```\n\n#### Using server reflection\n\nIf no `--schema` option is provided, server reflection will be used to figure out the type and service information.\n\n```shell\nfauxrpc curl --http2-prior-knowledge buf.registry.plugin.v1beta1.LabelService/ListLabels\n```\n\n## Dashboard\nEnhance your FauxRPC experience with the interactive dashboard, providing real-time insights into your server's operations.\n\nTo enable the dashboard, simply start FauxRPC with the `--dashboard` option:\n\n```\nfauxrpc run --schema=service.binpb --dashboard\n```\n\nAccess the dashboard in your browser at [http://127.0.0.1:6660/fauxrpc](http://127.0.0.1:6660/fauxrpc).\n\n![](\u003cassets/dashboard.png\u003e)\n\nThe dashboard provides:\n*   📊 **Summary:** View overall server statistics.\n*   📜 **Request Log:** Live stream of all incoming requests.\n*   📁 **Schema Browser:** Explore all Protobuf schemas loaded into the server.\n*   🔌 **Stubs:** Manage and view details of registered stubs.\n*   📚 **API Documentation:** Access auto-generated API documentation.\n\n![](\u003cassets/dashboard-event-log.gif\u003e)\n\nGo to [the documentation website](https://fauxrpc.com) for more!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsudorandom%2Ffauxrpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsudorandom%2Ffauxrpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsudorandom%2Ffauxrpc/lists"}