Reproducible · transparent · documented

Numbers, not promises

Zahlen, keine Versprechen

Every comparison below is a real, runnable scenario — the same job in Python + LangChain vs. Pipe. Full commands are in the docs and examples.

Jeder Vergleich unten ist ein reales, ausführbares Szenario — dieselbe Aufgabe in Python + LangChain vs. Pipe. Alle Befehle stehen in Doku und Beispielen.

~10 LOC
RAG pipeline
RAG-Pipeline
~1.5s
3 parallel LLM calls
3 parallele LLM-Calls
~7 MB
Binary vs ~500 MB
Binary vs ~500 MB
~7×
Bytecode VM
Bytecode-VM
📐

RAG pipeline — code size

RAG-Pipeline — Code-Umfang

The same semantic-search question-answering pipeline: embed a knowledge base, find the nearest match, and ask the LLM.

Dieselbe semantische Such-&-Frage-Pipeline: Wissensbasis embedden, nächsten Treffer finden und das LLM fragen.

Python+LC
~80 lines
80 LOC
Pipe
~10 lines
10 LOC

8× less code. The pipeline operator removes the orchestration boilerplate entirely.

8× weniger Code. Der Pipeline-Operator eliminiert das Orchestrierungs-Boilerplate komplett.

-- Pipe RAG (~10 lines)
ai_provider "deepseek"

docs: read_lines "knowledge_base.txt"
vectors: embed_batch docs

question: "How does the bytecode VM work?"
q_vec: embed question
top: nearest q_vec vectors 3

ask ("Context:\n" ++ (join (map top (at docs)) "\n") ++ "\nQ: " ++ question)
    > print

Parallel LLM calls — wall time

Parallele LLM-Calls — Laufzeit

Three independent LLM calls. Sequentially they cost ~1.3s each. With Pipe's >> operator they run concurrently and finish together.

Drei unabhängige LLM-Calls. Sequentiell kosten sie jeweils ~1,3s. Mit dem >>-Operator von Pipe laufen sie gleichzeitig und enden zusammen.

Sequential
~4s
~4.0s
Pipe >>
~1.5s
~1.5s

2.7× faster with zero async/await or Promise.all boilerplate. ai_batch scales the same idea to hundreds of texts with built-in rate limiting.

2,7× schneller ohne async/await- oder Promise.all-Boilerplate. ai_batch skaliert dieselbe Idee auf hunderte Texte mit eingebautem Rate-Limiting.

-- 3 calls in parallel — ~1.5s total
a: "Capital of France?"  >> ask
b: "Capital of Germany?" >> ask
c: "Capital of Italy?"   >> ask

print a ++ " | " ++ b ++ " | " ++ c
💾

Deploy size — binary vs. Docker image

Deploy-Größe — Binary vs. Docker-Image

A typical Python + LangChain deployment ships as a ~500 MB Docker image with venv, pip and dependencies. Pipe is a single statically-linked binary.

Ein typisches Python-+LangChain-Deployment ist ein ~500-MB-Docker-Image mit venv, pip und Abhängigkeiten. Pipe ist eine einzige statisch gelinkte Binary.

Python+LC
~500 MB
~500 MB
Pipe
~7 MB
~7 MB
Pipe (UPX)
~2.9 MB
~2.9 MB

Deploy to a server or Raspberry Pi with scp pipe binary. No venv, no pip, no Docker, no runtime dependencies.

Deploy auf Server oder Raspberry Pi per scp pipe binary. Kein venv, kein pip, kein Docker, keine Laufzeit-Abhängigkeiten.

🏎️

Execution engine — bytecode VM

Ausführungs-Engine — Bytecode-VM

Compile to bytecode and run on a stack-based VM instead of the tree-walker. Compute-heavy pipelines get faster — often ~7× — with automatic caching.

In Bytecode kompilieren und auf einer Stack-basierten VM statt im Tree-Walker ausführen. Rechenlastige Pipelines werden schneller — oft ~7× — mit automatischem Caching.

Tree-walker
baseline
1.0×
Bytecode VM
~7×
~7×

Run with pipe -vm -q script.pipe. Measure it yourself with pipe -bench.

Ausführen mit pipe -vm -q script.pipe. Selbst messen mit pipe -bench.

Pipe vs. Python + LangChain

Pipe vs. Python + LangChain

Same job. Less code. Built-in safety.

Gleicher Job. Weniger Code. Eingebaute Sicherheit.

Python + LangChainPipe
RAG pipelineRAG-Pipeline~80 LOC~80 Zeilen~10 LOC~10 Zeilen
Sandbox LLM accessLLM-Zugriff sandboxenCustom middlewareCustom MiddlewareOne sandbox_profile blockEin sandbox_profile-Block
Switch AI providerKI-Provider wechselnRewrite SDK callsSDK-Calls umschreibenai_provider "deepseek"
Deploy to serverAuf Server deployenDocker + venv + pipDocker + venv + pipscp pipe binaryscp pipe binary
Parallel LLM callsParallele LLM-Callsasyncio.gather() boilerplateasyncio.gather()-Boilerplate>> operator, ai_batch
Binary size (with deps)Binary-Größe (mit Deps)~500 MB~500 MB~7 MB~7 MB

How these numbers were measured

Wie diese Zahlen gemessen wurden

  • RAG and parallel-call timings are representative measurements of the pipeline patterns shown on this page; wall times depend on provider latency.
  • RAG- und Parallel-Call-Zeiten sind repräsentative Messungen der hier gezeigten Pipeline-Muster; die Laufzeit hängt von der Provider-Latenz ab.
  • Binary sizes: go build -ldflags="-s -w" -trimpath. UPX figure is make build-upx.
  • Binary-Größen: go build -ldflags="-s -w" -trimpath. UPX-Wert via make build-upx.
  • Bytecode VM speedup is the documented ~7× for compute-heavy programs; measure on your machine with pipe -bench.
  • Bytecode-VM-Beschleunigung ist der dokumentierte ~7×-Wert für rechenlastige Programme; auf dem eigenen Rechner messen mit pipe -bench.
  • Run every example yourself in the browser playground — no install needed.
  • Jedes Beispiel selbst ausprobieren im Browser-Playground — ohne Installation.