FauxRPC 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.
- Faster Development & Testing: Work independently without relying on fully functional backend services.
- Isolation & Control: Test frontend components in isolation with controlled fake data.
- Multi-Protocol Support: Supports multiple protocols (gRPC, gRPC-Web, Connect, and REST).
- Prototyping & Demos: Create prototypes and demos quickly without building the full backend. Fake it till you make it.
- API Stubs: Define static or dynamic API responses with powerful stubs featuring CEL expressions for precise behavior control. Stubs can be defined using config files or dynamically at runtime.
- Improved Collaboration: Bridge the gap between frontend and backend teams.
- Plays well with others: Test data from FauxRPC will try to automatically follow any protovalidate constraints that are defined.
- Request Validation: Ensure data integrity with automatic request validation using protovalidate. Catch errors early and prevent invalid data from reaching your application logic.
See the the documentation website for more!
go install github.com/sudorandom/fauxrpc/cmd/fauxrpc@latest
Binaries are built for several platforms for each release. See the latest ones on the releases page.
Pass protobuf descriptors to FauxRPC and a test server will be created, returning random fake data!
$ fauxrpc run --schema=service.binpb
That's... it. Now you can call it with your gRPC/gRPC-Web/Connect clients:
$ buf curl --http2-prior-knowledge http://127.0.0.1:6660/my.own.v1.service/HelloWorld
{
"text": "Thundercats."
}
Go to the documentation website for more!