mcpField
P
polyglot-integration

polyglot-integration

github.com/aj-geddesDevelopment373421 installsUpdated 34w ago
Repository

About polyglot-integration

polyglot-integration is a skill for developers integrating code across programming languages. It provides reference guides and practices for native addons, language bindings, and gRPC communication.

Key features

  1. 01Guides for Node.js native addons
  2. 02Python integration from Node.js
  3. 03Rust integration with Python
  4. 04Java integration with Python
  5. 05gRPC polyglot communication

Use cases

  1. 01Calling Python ML models from another language
  2. 02Connecting performance-critical C, C++ or Rust code
  3. 03Integrating a legacy system
  4. 04Communicating across polyglot microservices

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill polyglot-integration

After installing, type/polyglot-integrationin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
grpc-polyglot-communication.md
java-from-python-py4j.md
nodejs-native-addons-c.md
python-from-nodejs.md
rust-from-python-pyo3.md
scripts/
validate-pipeline.sh
templates/
pipeline.yaml

Details

From the project README

Polyglot Integration

Table of Contents

Overview

Integrate code written in different programming languages to leverage their unique strengths and ecosystems.

When to Use

  • Performance-critical code in C/C++/Rust
  • ML models in Python from other languages
  • Legacy system integration
  • Leveraging language-specific libraries
  • Microservices polyglot architecture

Quick Start

Minimal working example:

// addon.cc
#include <node.h>

namespace demo {

using v8::FunctionCallbackInfo;
using v8::Isolate;
using v8::Local;
using v8::Object;
using v8::String;
using v8::Value;
using v8::Number;

void Add(const FunctionCallbackInfo<Value>& args) {
  Isolate* isolate = args.GetIsolate();

  if (args.Length() < 2) {
    isolate->ThrowException(v8::Exception::TypeError(
        String::NewFromUtf8(isolate, "Wrong number of arguments")));
    return;
  }

  if (!args[0]->IsNumber() || !args[1]->IsNumber()) {
    isolate->ThrowException(v8::Exception::TypeError(
        String::NewFromUtf8(isolate, "Arguments must be numbers")));
// ... (see reference guides for full implementation)

Reference Guides

Detailed implementations in the references/ directory:

GuideContents
Node.js Native Addons (C++)Node.js Native Addons (C++)
Python from Node.jsPython from Node.js
Rust from Python (PyO3)Rust from Python (PyO3)
gRPC Polyglot CommunicationgRPC Polyglot Communication
Java from Python (Py4J)Java from Python (Py4J)

Best Practices

✅ DO
  • Use appropriate IPC mechanism
  • Handle serialization carefully
  • Implement proper error handling
  • Consider performance overhead
  • Use type-safe interfaces
  • Document integration points
❌ DON'T
  • Pass complex objects across boundaries
  • Ignore memory management
  • Skip error handling
  • Use blocking calls in async code

Comments

Markdown supported