{"repo":"DaniGuardiola/rpc-anywhere","free":true,"listed":false,"github":"https://github.com/DaniGuardiola/rpc-anywhere","clone":"git clone https://github.com/DaniGuardiola/rpc-anywhere.git","description":"Create a type-safe RPC anywhere.","language":"TypeScript","stars":207,"topics":["browser-extension","chrome-extension","electron","iframe","messaging","postmessage","rpc","service-worker","webworker"],"license":"MIT","category":"chat-messaging","readme_excerpt":"Create a type-safe RPC anywhere. RPC Anywhere powers Electrobun, Teampilot AI, and more. ✨ Interactive iframe demo ✨ --- RPC Anywhere lets you create RPCs in any context, as long as a transport layer (a way for messages to move between point A and point B) is provided. Designed to be the last RPC library you'll ever need, it ships with a few transports out of the box: iframes, Electron IPC, browser extensions, workers... What is an RPC? In the context of this library, an RPC is a connection between two endpoints, which send messages to each other. If the sender expects a response, it's called a \"request\". A request can be thought of as a function call where the function is executed on the other side of the connection, and the result is sent back to the sender. Learn more about the general concept of RPCs on Wikipedia. What is a transport layer? A transport layer is the \"channel\" through which messages are sent and received between point A and point B. Some very common examples of endpoints: - Websites: iframes, workers, BroadcastChannel . - Browser extensions: content script ↔ service worker. - Electron: renderer process ↔ main process. - WebSocket. Why should I use RPC Anywhere? While there are some really great RPC libraries out there, many of them are focused in a specific use-case, and come with trade-offs like being tied to a specific transport layer, very opinionated, very simple, or not type-safe. Because of this, many people end up creating their own RPC implementatio","default_branch":null,"files":null,"tree":[],"storefront":"/r/DaniGuardiola","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/DaniGuardiola/rpc-anywhere/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}