Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: Improved & styled README.md #53

Merged
merged 3 commits into from
Dec 22, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 76 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,77 @@
# End-to-end typesafe APIs builder, Developer-first simplicity
<div align="center">
<image align="center" src="https://i.ibb.co/rZw671M/New-Project-2.png" width=400 />
</div>

This project is still in heavy development, you can read the docs [here](https://orpc.unnoq.com).
<h1></h1>

<div align="center">

![NPM Downloads](https://img.shields.io/npm/dm/%40orpc/server?logo=npm)
![GitHub Release](https://img.shields.io/github/v/release/unnoq/orpc?logo=github)
![GitHub commit activity](https://img.shields.io/github/commit-activity/m/unnoq/orpc?logo=git&logoColor=%23fff)
![GitHub License](https://img.shields.io/github/license/unnoq/orpc)

</div>

<p align="center">End-to-end typesafe APIs built quicker & easier</p>

> [!NOTE]
> This project is still in heavy development, please be mindful of breaking changes.

**oRPC is a powerful combination of RPC and OpenAPI, offering an exceptional developer experience powered by TypeScript. It's designed to be simple and straightforward to use.**

---

## Features

- **Type-safe 🔒**: oRPC is built on top of TypeScript, which means you get full type safety out of the box.
- **Easy to use ✍️**: oRPC is designed to be simple and straightforward to use.
- **Contract first 📝**: Take advantage of a "contract first" approach to developing your API.
- **Built-in plugins 🔌**: Easily implement into your favourite frameworks.

---

## Documentation & Examples

You can find the full documentation & examples [here](https://orpc.unnoq.com).

---

## Packages

- `@orpc/contract`: Build your API contract.
- `@orpc/server`: Handle your contract on the server.
- `@orpc/client`: Consume your contract on the client.
- `@orpc/react`: React hooks for your client.
- `@orpc/react-query`: React Query wrapper for your client.
- `@orpc/vue-query`: Vue Query wrapper for your client.
- `@orpc/openapi`: Generate an OpenAPI spec from your contract.
- `@orpc/next`: Next.js API server handler.
- `@orpc/zod`: Specialised Zod schema types for your contract.

---

## Comparison

This comparison table helps you understand how oRPC differs from other popular TypeScript RPC and REST solutions.

- ✅ First-class, built-in support.
- 🟡 Lacks features, or requires third-party integrations.
- 🛑 Not supported or not documented.

| Feature | oRPC | tRPC | ts-rest | Description |
| -------------------------- | ---- | ---- | ------- | -------------------------------------------------------- |
| End-to-end Type Safety | ✅ | ✅ | ✅ | Full TypeScript type inference from backend to frontend. |
| SSR Support | ✅ | ✅ | ✅ | Server-side rendering compatibility. |
| React Query Integration | ✅ | ✅ | 🟡 | Native support for React Query/TanStack Query. |
| Vue Query Integration | ✅ | 🛑 | 🟡 | Native support for Vue Query/TanStack Query. |
| Contract-First Development | ✅ | 🛑 | ✅ | API definitions before implementation. |
| File Operations | ✅ | 🟡 | 🟡 | Built-in support for file uploads/downloads. |
| OpenAPI Support | ✅ | 🟡 | 🟡 | Generation and consumption of OpenAPI specs. |
| Server Actions Support | ✅ | ✅ | 🛑 | React/Next.js Actions compatibility. |

---

## License

Distributed under the MIT License. See [LICENSE](LICENSE) for more information.
Loading