This project is inspired from tRPC.
Access server side properties and functions on client side without any frills, just as if they are one.
- π¦ Framework agnostic API.
- β¨ Full static type safety with auto completion on client.
- π Zero dependencies and client library weights <1kb (minified).
- β Get up and running with your existing project in minutes.
Check out the dev.to article for behind the scenes of this project π‘’
RPC only allows you to execute procedures i.e. functions. What about static properties? With tRPA you can do both, access server side properties as well as execute remote functions from client side just as if you would from server side in a really native manner.
There are just two main functions: exportToClient
and importFromServer
.
Read the full documentation here.
Checkout the examples for Bun, Deno, Elysia here.
Unlike tRPC which uses Proxy object on client side to emulate accessing server side procedures, tRPA takes a different approach. It creates a special object with all nested properties and functions as exported and attaches a getter to each of them which does the magic behind the scenes. Which means after exporting, you'll get auto completions even from client developer console.
This project only supports modern runtimes like Bun and Deno as they use the web standard APIs like Request and Response for their web server frameworks. Hence frameworks like node:http
, express
, fastify
, etc. aren't supported.
This is a fairly new project, so it has some known limitations.
- Doesn't support generator functions
- Cannot send batch requests
- No built in error handling
- Creating instance for an exported class won't work
Feel free to open PRs if you can resolve any such issues.
This project uses MIT License. See LICENSE for full license text.