Thank you for your interest in contributing to oRPC! We welcome all kinds of contributions: bug reports, feature requests, documentation improvements, and code enhancements.
If you need help or have questions, please join us on Discord.
Tip
Mini-oRPC is a simplified implementation of oRPC that includes essential features to help you understand the core concepts. It's designed to be straightforward and easy to follow, making it an ideal starting point for learning about oRPC.
This repository uses:
- Node.js v22+ (use
pnpm envfor quick setup) - pnpm and pnpm workspaces for dependency management
- Vitest for testing
- ESLint with @antfu/eslint-config for linting and formatting
- Fork: Fork the repository.
- Clone: Clone your fork.
- Install: Install dependencies.
pnpm install
- Branch: Create a new branch:
git checkout -b feature/your-feature
- Code: Make your changes.
- Test: Manually verify in a playground, e.g.:
cd playgrounds/next pnpm dev - Tests: Add or update tests:
- Unit tests: add
.test-d.ts,.test.ts,.test.tsxfiles next to code. - E2E tests: place in
/testsunder the relevant package.
- Unit tests: add
- Commit & Push:
- Commit should follow the Conventional Commits Cheatsheet but not required because we usually use
Squash and Merge.
- Commit should follow the Conventional Commits Cheatsheet but not required because we usually use
- Pull Request: Open a PR against
main(or corresponding version branch).- our PR title should follow the Conventional Commits Cheatsheet, with scope corresponding to the package.
- In the description, summarize your changes and reference any related issue, e.g.,
Fixes #123.
- @orpc/shared β shared utilities and types.
- @orpc/client β core library, ORPCError, RPC serializers, RPC link,...
- @orpc/contract β contract definitions (input/output/errors/meta/route, contract builder).
- @orpc/server β contract implementer, procedure/router builder, procedure/router client, RPC handler, ...
- @orpc/openapi-client - OpenAPI serializers, OpenAPI Link, ...
- @orpc/openapi β OpenAPI Spec generator, OpenAPI handler, ...
- @orpc/standard-server* β environment adapters (
fetch,node, etc.). - playgrounds/ β example applications.
- apps/content/ - content, documentation, and website.