nowfound

Dev tools · September 16, 2025

PC

Pyproc – Call Python from Go Without CGO or Microservices

Hi HN!I built *pyproc* to let Go services call Python like a local function — *no CGO and no separate microservice*. It runs a pool of Python worker processes and talks over *Unix Domain Sockets* on the same host/pod, so you get low overhead, process isolation, and parallelism beyond the GIL. *Why this exists* * Keep your Go service, reuse Python/NumPy/pandas/PyTorch/scikit-learn. * Avoid network hops, service discovery, and ops burden of a separate Python service. *Quick try (\~5 minutes)* Go (app): ``` go get github.com/YuminosukeSato/pyproc@latest ```…

Visit github.comAlternativestop 21% of September 2025

In plain words

Pyproc enables Go applications to call Python functions directly without requiring CGO or separate microservices. It manages a pool of Python worker processes communicating over Unix Domain Sockets on the same host or pod, providing low overhead and process isolation. This allows developers to keep their Go services while reusing Python libraries like NumPy, pandas, PyTorch, and scikit-learn, avoiding the operational complexity of maintaining separate Python services and network communication.

written from the facts on this page · September 2026

From the sources

In the maker’s words, at launch

Hi HN!I built *pyproc* to let Go services call Python like a local function — *no CGO and no separate microservice*. It runs a pool of Python worker processes and talks over *Unix Domain Sockets* on the same host/pod, so you get low overhead, process isolation, and parallelism beyond the GIL. *Why this exists* * Keep your Go service, reuse Python/NumPy/pandas/PyTorch/scikit-learn. * Avoid network hops, service discovery, and ops burden of a separate Python service. *Quick try (\~5 minutes)* Go (app): ``` go get github.com/YuminosukeSato/pyproc@latest ``` Python (worker): ``` pip install pyproc-worker ``` Minimal worker (Python): ``` from pyproc_worker import expose, run_worker @expose def predict(req): return {"result": req["value"] * 2} if __name__ == "__main__": run_worker() ``` Call from Go: ``` import ( "context" "fmt" "github.com/YuminosukeSato/pyproc/pkg/pyproc" ) func main() { pool, _ := pyproc.NewPool(pyproc.PoolOptions{ Config: pyproc.PoolConfig{Workers: 4, MaxInFlight: 10}, WorkerConfig: pyproc.WorkerConfig{SocketPath: "/tmp/pyproc.sock", PythonExec: "python3", WorkerScript: "worker.py"}, }, nil) _ = pool.Start(context.Background()) defer pool.Shutdown(context.Background()) var out map[string]any _ = pool.Call(context.Background(), "predict", map[string]any{"value": 42}, &out) fmt.Println(out["result"]) // 84 } ``` *Scope / limits* * Same-host/pod only (UDS). Linux/macOS supported; Windows named pipes not yet. * Best for request/response payloads ≲ \~100 KB JSON; GPU orchestration and cross-host serving are out of scope. *Benchmarks (indicative)* * Local M1, simple JSON: \~*45µs p50* and *\~200k req/s* with 8 workers. Your numbers will vary. *What’s included* * Pure Go client (no CGO), Python worker lib, pool, health checks, graceful restarts, and examples. *Docs & code* * README, design/ops/security docs, pkg.go.dev: [https://github.com/YuminosukeSato/pyproc](https://github.com/YuminosukeSato/pyproc) *License* * Apache-2.0. Current release: v0.2.x. *Feedback welcome* * API ergonomics, failure modes under load, and priorities for codecs/transports (e.g., Arrow IPC, gRPC-over-UDS). --- Source for details: project README and docs. ([github.com][1]) [1]: https://github.com/YuminosukeSato/pyproc "GitHub - YuminosukeSato/pyproc: Call Python from Go without CGO or microservices - Unix domain socket based IPC for ML inference and data processin"

More dev tools this month

the category →
  • Dograh592

    The open source VAPI alternative

    Dev tools · 25d ago · dograh.com

  • Meridian530

    Don't let your work go unnoticed. Get promoted!

    Dev tools · 20d ago · meridiona.com

  • x1516

    Lovable for iPhone apps go from idea to App Store

    Dev tools · 11d ago · x1.new

  • Open-source GTM skills for technical founders

    Dev tools · 29d ago · gtmcofounder.com

  • OpenTrailPaper is open-source bike computer firmware for the LilyGO T5S3 4.7" E-Paper PRO. It supports offline maps, GPX routes, FIT recording and Bluetooth sensors.

    Dev tools · 1d ago · opentrailpaper.com

  • Nuphos380

    The AI-Native DevOps Workspace.

    Dev tools · 24d ago · nuphos.ai

Launched alongside, September 2025

the whole month →
  • YouMind1,226

    The first AI creation studio where learning meets writing

    AI · Sep 2025 · youmind.com

  • AS

    Commerce · Sep 2025 · anycrap.shop

  • TE

    I made a built-from scratch Wayland Compositor to display any GUI app* in the terminal! I think there is a lot of unexplored potential in custom Wayland compositors, a lot of really cool things you can embed existing applications into! So, I started with embedding apps into the terminal because that is the easiest input/output (output is just utf-8 and I use the great `chafa` library for that, and I just read from stdin for the input). If you have any other ideas for cool Wayland compositors, let me know. I purposedly wrote 80% the app in Typescript to appeal to the most developers and…

    Dev tools · Sep 2025 · github.com

  • IR

    Years ago I stumbled across a basic version of this concept and it stuck with me. I knew if I was ever going to take on such a project, it would need to be flawless, but without coding experience it was just another idea that would never happen. By the end of 2024, as AI coding tools exploded everywhere, I finally had a way to make it real. I started from zero knowledge and spent months collaborating with AI agents as a learning experience. Every pixel and every function went through me. The AI translated what I asked for into code, but every decision was human. I didn't use existing OS…

    AI · Sep 2025 · mitchivin.com

  • Ada911

    Your own AI data analyst

    AI · 2025 · ada.im

  • Turn Product Images into Scroll-Stopping Video Ads

    Growth · Sep 2025 · vidau.ai