kkrpc-interop

Enable JSON-based RPC between TypeScript endpoints and Go, Python, Rust, and Swift clients.

Updated Jan 8, 2026
One-click install
npx skills add https://github.com/joeblew999/plat-trunk --skill kkrpc-interop-joeblew999
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: kkrpc-interop
Source: https://github.com/joeblew999/plat-trunk/tree/main/.claude/skills/interop
Command: npx skills add https://github.com/joeblew999/plat-trunk --skill kkrpc-interop-joeblew999

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

kkrpc provides a language-agnostic RPC protocol and a scaffold to enable interop between TypeScript kkrpc endpoints and clients in Go, Python, Rust, and Swift, with clear message formats, transports, and reference implementations.

Core Features & Use Cases

  • Cross-language RPC: Build clients/servers that communicate with kkrpc TypeScript endpoints via stdio or WebSocket transports.
  • Reference Implementations: Includes Go, Python, Rust, and Swift samples demonstrating transports, protocol, and tooling.
  • Use Case: Validate interoperability by writing a small Go client that invokes a TypeScript endpoint and a Python server that handles callbacks.

Quick Start

Run a reference client against the kkrpc endpoint to validate cross-language interoperability.

Frequently Asked Questions about kkrpc-interop

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I enable cross-language RPC between TypeScript and Go, Python, Rust, or Swift?

Cross-language RPC between TypeScript and Go, Python, Rust, or Swift uses a JSON-based protocol with line-delimited messages over stdio or WebSocket transports. Reference implementations in each language handle requests, responses, and callbacks automatically.

What is line-delimited JSON RPC for language interop?

Line-delimited JSON RPC for language interop is a protocol using message types like request, response, callback, get, set, and construct. Messages are separated by newlines and transported over stdio or WebSocket connections.

Can I use WebSocket and stdio transports for cross-language RPC?

Yes, both WebSocket and stdio transports support cross-language RPC. The protocol specifies line-delimited JSON messages for both transport types, enabling flexible communication between TypeScript endpoints and Go, Python, Rust, or Swift clients.

How do I test interoperability between a TypeScript endpoint and a Python server with callbacks?

To test interoperability, run a reference client in Go or Swift against a TypeScript endpoint, or implement a Python server that handles callbacks. The protocol defines callback message types and UUID handling for request correlation across languages.

Does cross-language RPC over JSON handle UUIDs for request tracking?

Yes, the JSON-based RPC protocol includes UUID handling for tracking requests, responses, and callbacks. Each message type—request, response, callback, get, set, and construct—uses UUIDs to correlate interactions across language boundaries.

What are the limitations of JSON-based RPC for multi-language interop?

JSON-based RPC for multi-language interop requires line-delimited message parsing on both ends and depends on consistent UUID handling across implementations. Complex object graphs may need manual serialization since the protocol uses JSON message types rather than binary encoding.