explaingit

icloudza/r1rpc

Analysis updated 2026-05-18

26GoAudience · developerComplexity · 4/5Setup · moderate

TLDR

r1rpc lets you call functions on a physical device remotely over HTTP, useful for hardware-locked operations like iOS security checks.

Mindmap

mindmap
  root((r1rpc))
    What it does
      Remote calls to real devices
      HTTP to WebSocket bridge
      Device grouping
    Tech stack
      Go
      React dashboard
      MySQL
    Use cases
      iOS DeviceCheck calls
      App Attest signing
      Device pool routing
    Audience
      Backend developers
      Mobile automation engineers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Call iOS DeviceCheck or App Attest functions on a real device from a server

USE CASE 2

Route requests across a pool of devices grouped for load balancing

USE CASE 3

Trigger hardware-locked signing operations through an ordinary HTTP request

USE CASE 4

Monitor connected devices and their capabilities from a web dashboard

What is it built with?

GoReactMySQLWebSocket

How does it compare?

icloudza/r1rpcaasixh/devgrepaspecttaleadapter/adobe-lightroom-classic-15-3-full
Stars262725
LanguageGoGoGo
Setup difficultymoderateeasyeasy
Complexity4/52/51/5
Audiencedeveloperdevelopergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 1h+

Requires MySQL and a physical device running the client, documentation is in Chinese.

The README does not specify license terms for reuse of the code.

In plain English

r1rpc is a server that lets you call functions on a physical device from anywhere over the internet, using a normal HTTP request. The problem it solves is that some capabilities only work on real hardware: for example, certain iOS security features like DeviceCheck and App Attest, encrypted SDK calls, or signing operations that the device manufacturer intentionally requires to run on actual hardware rather than a server. If you need those results in an automated system, you previously had to build your own bridging mechanism. The way r1rpc works is that a physical device runs a small client that connects to the central r1rpc server over a long-lived WebSocket connection. When something wants to call a function on that device, it sends an ordinary HTTP request to the server. The server routes the request to an available connected device, waits for it to execute the function, and returns the result synchronously. From the caller's perspective, it looks like calling any HTTP API. The README describes this as "remote procedure call, but the procedure runs on your physical device." Devices can be organized into groups, and when multiple devices belong to the same group, the server automatically distributes incoming requests across them in round-robin fashion. This allows running a pool of physical devices to handle higher request volumes. Authentication is handled separately at three levels: an admin dashboard login, per-group API key authentication for callers, and a device key for each physical device. Devices register their supported capabilities automatically when they connect, so the dashboard shows what each device can do without manual configuration. The server is a single binary written in Go. The web dashboard is built in React and compiled directly into the binary, so there is no separate frontend to serve. The only external dependency is MySQL. There is no Redis or other caching layer, state is kept in memory and written to MySQL. The project can be run via Docker Compose or started directly from source with Go 1.26 or later. The README and all documentation are written in Chinese.

Copy-paste prompts

Prompt 1
Explain how r1rpc routes an HTTP request to a connected physical device
Prompt 2
Help me set up r1rpc with Docker Compose and MySQL
Prompt 3
How does r1rpc authenticate callers at the admin, group, and device levels?
Prompt 4
Show me how to call a function on a device group using r1rpc's round-robin routing

Frequently asked questions

What is r1rpc?

r1rpc lets you call functions on a physical device remotely over HTTP, useful for hardware-locked operations like iOS security checks.

What language is r1rpc written in?

Mainly Go. The stack also includes Go, React, MySQL.

What license does r1rpc use?

The README does not specify license terms for reuse of the code.

How hard is r1rpc to set up?

Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.

Who is r1rpc for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.