Pipe — нативная для MCP среда выполнения, готовая к эксплуатации
Первый язык с встроенным MCP — сервер и клиент. 245 встроенных функций, единственный ~8 МБ двоичный файл. Никаких зависимостей.
Официально зарегистрирован в официальном MCP Registry (v1.1.1, активно). Установка в один клик из GitHub MCP Registry для Copilot и VS Code.
Что нового в v1.0
Pipe v1.0.0 — это релиз, готовый к эксплуатации, объединяющий всю серию v0.9.x:
-
Условия-охранники (guard clauses) —
| pattern if cond -> bodyв выражениях match -
Примитивы конкуренции (Concurrency primitives) — каналы (
send/recv/try_recv), мьютекс (lock/unlock), счетный семафор (acquire/release) -
Улучшения байткод‑VM — константное свёртывание, алиасы пространств импортов, кэш байт-кода
-
Модуль MQTT 5.0 — чистый клиент Pipe MQTT с проверкой входных данных, свойства CONNACK, обработка DISCONNECT
-
docs-pipe — RAG‑модуль для поиска по документации на основе заголовков и разбивки на фрагменты
-
Тестовая инфраструктура — хуки setup/teardown,
assert_near/assert_contains, тестовые блоки VM -
Укреплённая песочница — раунды аудита 1–6, детерминированное маскирование окружения, центральный шлюз выхода
-
245 встроенных функций — 36 AI + 13 MCP + 192 стандартных, больше чем в v0.9.3
-
23 модуля — MQTT, SQLite, pipe-http, pipe-web, pipe-orm, pipe-cli и другие
Быстрая установка
curl -fsSL https://pipe-lang.com/install.sh | bash # Linux & macOS
Windows (PowerShell): irm https://pipe-lang.com/install.ps1 | iex
Установщик загружает последнюю версию, проверяет контрольную сумму SHA256 и устанавливает pipe в ~/.local/bin (или /usr/local/bin при запуске от имени root). Задайте версию с помощью PIPE_VERSION=v1.0.0. См. полную документацию по установке.
Установленные копии сами обновляются до последней версии на GitHub: pipe --update (или pipe --update-check, чтобы просто проверить наличие), pipe --version, чтобы увидеть текущую версию. Обновлятор сверяет контрольную сумму релиза и заменяет двоичный файл на месте.
Конфиденциальность и DSGVO
Pipe — соответствие DSGVO / GDPR по умолчанию:
-
Нулевая телеметрия и аналитика — двоичный файл никогда не звонит домой, ничего не отправляется с вашего устройства
-
Самодостаточный единый двоичный файл — работает полностью на вашей инфраструктуре
-
Без облака — никакие данные не обрабатываются на серверах поставщиков
-
Открытый исходный код (MIT) — полностью подлежит аудиту
-
Локальный ИИ — с Ollama, ни один байт не покидает вашу сеть; облачные провайдеры используются только если вы их специально настроили
Проблема
Развертывание ИИ в продакшене сложнее, чем должно быть:
-
Безопасность — LLMs с доступом к файлам, сети и выполнению команд — риск. Нужна тонкая песочница на уровне языка, а не послекатегорная прослойка.
-
Производительность — последовательные вызовы API превращают одноступенчатый конвейер в узкое место. Параллелизм не должен требовать boilerplate.
-
Зависимость от поставщика — переход с OpenAI на DeepSeek требует переписывания кода SDK на Python. Изменения провайдеров должны быть одной строкой.
-
Интеграция инструментов — подключение LLM к внешним инструментам (GitHub, базы данных, файловые системы) — лабиринт SDK и обёрток API. MCP должен быть язывым примитивом, а не библиотекой.
Pipe решает эти задачи на уровне языка.
Что такое Pipe?
Pipe — это Semantic Pipeline Runtime (SPR) — язык с нативной конвейерной обработкой, где summarize, translate и classify лежат на той же синтаксической основе, что и +, sort и len. Данные проходят сверху вниз через композиционные преобразования. Один бинарник. Никаких зависимостей.
Python + LangChain (~80 строк):
import openai
client = openai.OpenAI()
def summarize(text):
r = client.chat.completions.create(model="gpt-4o", messages=[{"role":"user","content":text}])
return r.choices[0].message.content
def translate(text, lang):
r = client.chat.completions.create(model="gpt-4o",
messages=[{"role":"system","content":f"Translate to {lang}"},{"role":"user","content":text}])
return r.choices[0].message.content
text = open("news.txt").read()
print(translate(summarize(text), "de"))
Pipe (5 строк):
summarize -- LLM call > translate "de" -- LLM call > print">``` read_file "news.txt" > summarize -- LLM call > translate "de" -- LLM call > print
## Model Context Protocol
Pipe имеет встроенный MCP — как сервер, так и клиент. Ни SDK, ни npm‑пакетов, ни Python. Чистая стандартная библиотека Go.
### MCP Server — Раскрывайте ваши инструменты
"22°C, sunny"
| "London" -> "15°C, rainy"
| _ -> city ++ ": no data"
ai_tool "get_weather" "Get weather for a city" {city: "City name"} get_weather
mcp_server "Weather Agent" "1.0.0"
mcp_serve_stdio">```
fn get_weather city
match city
| "Berlin" -> "22°C, sunny"
| "London" -> "15°C, rainy"
| _ -> city ++ ": no data"
ai_tool "get_weather" "Get weather for a city" {city: "City name"} get_weather
mcp_server "Weather Agent" "1.0.0"
mcp_serve_stdio
Настройка в Claude Desktop (claude_desktop_config.json):
{ "mcpServers": { "pipe": { "command": "/tmp/pipe", "args": ["agent.pipe"] } } }
MCP Client — Используйте внешние инструменты
ai_provider "deepseek"
ai_set_key "deepseek" (env "DEEPSEEK_API_KEY")
-- Подключение к MCP серверам GitHub + файловой системе
mcp_use_stdio "npx" "-y" "@modelcontextprotocol/server-github" {GITHUB_TOKEN: (env "GITHUB_TOKEN")}
mcp_use_stdio "npx" "-y" "@modelcontextprotocol/server-filesystem" "/tmp"
-- ИИ автоматически обнаруживает и использует все инструменты
result: ai_with_tools "You are a DevOps assistant." "Search pipe's open issues and list files in /tmp." 10
print result
Любой stdio MCP сервер работает мгновенно: файловая система, GitHub, Git, Postgres, SQLite, Slack, Brave Search, Память, Непрерывное мышление — всё что угодно на npm/uvx.
Примеры использования
Анализ логов → Инцидент-отчет
split "\n" > filter is_critical > summarize > translate "de" > save "incident_report.txt"">``` is_critical: fn line contains line "critical"
read_file "/var/log/app/errors.log" > split "\n" > filter is_critical > summarize > translate "de" > save "incident_report.txt"
### RAG‑пайплайн
print">```
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
context: ""
for idx in top
context: context ++ (at docs idx) ++ "\n---\n"
ask ("Context:\n" ++ context ++ "\nQuestion: " ++ question)
> print
AI‑агент с вызовом инструментов
"22°C, sunny" | "London" -> "15°C, rainy" | _ -> city ++ ": no data"
ai_tool "get_weather" "Get current weather for a city" {city: "Name of the city"} get_weather
ai_with_tools "You are a weather assistant." "What's the weather in Berlin and London?" > print">``` fn get_weather city match city | "Berlin" -> "22°C, sunny" | "London" -> "15°C, rainy" | _ -> city ++ ": no data"
ai_tool "get_weather" "Get current weather for a city" {city: "Name of the city"} get_weather
ai_with_tools "You are a weather assistant." "What's the weather in Berlin and London?" > print
### Конкурентность — 3 вызова LLM за 1,5 с, а не за 4 с
> ask
b: "What is CP/M?" >> ask
c: "Explain RFC 791" >> ask
print a ++ b ++ c -- будущее авторазрешение">```
ai_provider "deepseek"
a: "Explain monads" >> ask
b: "What is CP/M?" >> ask
c: "Explain RFC 791" >> ask
print a ++ b ++ c -- будущее авторазрешение
Уведомления CI/CD в Discord
import "discord.pipe" as d
ai_provider "deepseek"
-- AI‑код-ревью по коммиту, отправляется как Discord embed
review: ai_chat "Review this code change" diff 800
d.d_webhook_embed (env "DISCORD_WEBHOOK") {
title: "CI: Push to master",
color: 3447003,
fields: [
{name: "Changed Files", value: stat},
{name: "AI Review", value: review}
]
}
Сравнение: Pipe vs Python + LangChain
| Python + LangChain | Pipe | |
|---|---|---|
| RAG-пайплайн | ~80 LOC | ~8 LOC |
| Доступ к песочнице LLM | Специализированная прослойка | Один блок sandbox_profile |
| Переключение провайдера ИИ | Переписать вызовы SDK | ai_provider "deepseek" |
| Развертывание на сервере | Docker + venv + pip | scp двоичного файла pipe |
| Параллельные вызовы LLM | boilerplate с asyncio.gather() | оператор >>, ai_batch |
| MCP Server + Client | Зависит от библиотеки | 13 встроенных функций, ноль зависимостей, 100+ серверов |
| Размер двоичного файла | ~500 МБ (с зависимостями) | ~8 МБ |
Функции
-
MCP-native — 13 встроенных функций для MCP Server + Client. Чистая стандартная библиотека Go. Подключение к любому MCP‑серверу через stdio
-
Доставляйте AI‑пайплайны в 10x быстрее — 36 AI + 13 MCP встроенных функций: без импорта, без SDK, без обёрток API
-
Заточите агентов ИИ в одну строку — декларативные профили песочницы: ограничьте
exec,write_file,http_getодним блоком -
Развертывание за секунды — один статически слинкованный ~8 МБ бинарник. Нет venv, нет pip, нет Docker. Linux, macOS, Windows, Raspberry Pi или ваш браузер через WebAssembly
-
3 вызова LLM за 1.5s, не 4s —
>>запускает любую стадию пайплайна в фоновом режиме. Futаes авто-резолвятся.ai_batchобрабатывает сотни текстов одновременно с встроенным ограничением скорости -
Без vendor lock-in — OpenAI, Anthropic (Claude), DeepSeek, Ollama. Переключение одной строкой. Один и тот же код работает везде
-
Примитивы конкурентности — каналы (
send/recv), мьютекс (lock/unlock), счетный семафор (acquire/release) -
Синтаксис конвейерной природы —
>последовательный,>>параллельный. Данные текут сверху вниз — читаемо, составимо, отлаживаемо -
Встроенные социальные платформы — вебхуки Discord и боты Telegram как модули Pipe. AI‑ревью кода, уведомления, чат — нулевые API‑расходы на отправку
-
Байткод VM — компиляция в байткод, выполнение на стековой VM с автоматическим кешированием. Эмпирически 0.6x–55x по сравнению с деревом‑обходчиком, в зависимости от нагрузки (рекурсии до ~55x)
-
Модульная экосистема — 23 curated модуля, реестр с привязкой версий (
@1.0.0).pipe -getустанавливает, импорт по имени -
Встроенное тестирование — блоки
testсassert_eq,assert_error. Запускать черезpipe -test. Ноль настроек -
GitHub Action — запуск Pipe непосредственно в CI/CD. Установка не требуется
-
VSCode Extension — подсветка синтаксиса, IntelliSense, диагностика и автодополнение на основе LSP
-
Саморазворачивающийся бинарник — распространяйте ваш пайплайн как автономный исполняемый файл (
pipe -build)
Быстрый старт
print'">``` git clone https://github.com/MachuraHarry/pipe && cd pipe && make build export DEEPSEEK_API_KEY="sk-..." ./bin/pipe -vm -q -c 'ai_provider "deepseek"; ask "What makes Pipe different?" > print'
## Попробуйте в браузере
Установка не требуется — Pipe полностью работает в вашем браузере через WebAssembly:
[Открыть Pipe Playground](https://pipe-lang.com/playground.html)
classify levels
> summarize
> print">```
-- Вставьте это в playground и нажмите Run
levels: ["error","warn","info"]
read_file "server.log"
> classify levels
> summarize
> print
GitHub Action
Запустите Pipe напрямую в CI/CD — установка не требуется:
- uses: MachuraHarry/pipe/.github/actions/pipe-action@master
with:
script: |
print "Hello from CI/CD!"
log: exec "git log --oneline -20"
print (get log "output")
VSCode Extension
Синтаксическая подсветка и полное IntelliSense для файлов .pipe, основанные на клиенте Language Server Protocol (vscode/) и сервере pipe-lsp (cmd/pipe-lsp):
-
Автодополнение, справочная информация по элементам, сигнатуры функций, переход к определению, ссылки, переименование
-
Диагностика (ошибки разбора, определения/неиспользованные переменные) и семантическая подсветка
-
Форматирование документа, авто‑завершение скобок, авто‑отступы и свёртывание кода
make vsix # собирает сервер и упаковывает vscode/pipe-syntax-1.0.0.vsix
Или запустите расширение в режиме разработки F5 из папки vscode/. Смотрите Документацию VSCode Extension.
Модульная экосистема
Pipe имеет курируемую библиотеку модулей — 23 повторно используемых модуля с привязкой версий:
| Инфраструктура | Данные и CLI | AI и агенты | DevTools | Социальное |
|---|---|---|---|---|
| pipe-http | sqlite | rag-pipe | pipe-test | telegram-bot |
| pipe-cli | jpipe | log-analyzer | pipe-validate | mqtt |
| pipe-orm | pipe-tpl | sentiment | ||
| pipe-web | pipe-date | code-review | ||
| translate-batch | ||||
| changelog-gen | ||||
| email-classifier | ||||
| incident-report | ||||
| parallel-runner | ||||
| date-formatter | ||||
| docs-pipe |
pipe -search # Просмотр модулей
pipe -search sql # Фильтр по ключевому слову
pipe -get sqlite # Установить последнюю версию
pipe -get sqlite@0.8.0 # Установить конкретную версию
each print">``` import "sqlite" -- база данных import "pipe-http" -- HTTP-клиент import "mqtt" -- MQTT 5.0 клиент import "discord.pipe" as d -- Discord вебхуки + бот
idx: index_create h "knowledge" index_add idx "Pipe is an AI-native language." index_search idx "language" 3 > each print
[→ Документация экосистемы](https://github.com/MachuraHarry/pipe/blob/master/docs/en/21-ecosystem.md) | [→ Вклад в модуль](https://github.com/MachuraHarry/pipe-modules/blob/master/CONTRIBUTING.md)
## Режимы выполнения
| Режим | Команда | Скорость |
| --- | --- | --- |
| Tree-Walker | ./bin/pipe script.pipe | Базовая производительность |
| Bytecode VM | ./bin/pipe -vm -q script.pipe | 0.6x-55x (для рекурсивно‑нагруженных задач до ~55x) |
## 49 встроенных функций для AI + MCP (36 AI + 13 MCP)
### Понимание
`summarize`, `translate`, `classify`, `extract`, `ask`, `generate`, `generate_json`
### Скорость и контроль
`ai_stream`, `ai_batch`, `ai_parallel`, `ai_rate_limit`, `ai_chat`, `ai_chat_json`
### Поиск и извлечение
`web_search`, `wiki_search`, `embed`, `embed_batch`, `cosine_sim`, `dot_product`, `nearest`
### Агенты и инструменты
`agent`, `agent_ask`, `agent_clear`, `ai_tool`, `ai_with_tools`
### Конфигурация и стоимость
`ai_provider`, `ai_model`, `ai_host`, `ai_set_key`, `ai_timeout`, `ai_cache`, `ai_cost`, `ai_tokens`, `ai_cache_hits`, `ai_cache_misses`
### MCP — Model Context Protocol
`mcp_server`, `mcp_serve_stdio`, `mcp_serve_sse`, `mcp_tools`, `mcp_resource`, `mcp_resource_template`, `mcp_prompt`, `mcp_resources`, `mcp_read_resource`, `mcp_prompts`, `mcp_prompt_get`, `mcp_use_stdio`, `mcp_use_sse`
### Самовосстановление
`try_ai`, `try_ai_log`
## Расширенные возможности
### Самовосстанавливающийся код (`try_ai`)
AI оборачивает в to_num -> 126
catch e
0 -- выполняется только если исправление AI не удалось
print result -- 126">```
ai_provider "deepseek"
result: try_ai
"42" * 3 -- E002 Type Error -> AI wraps with to_num -> 126
catch e
0 -- выполняется только если исправление AI не удалось
print result -- 126
Параллельный конвейер (>>)
ask b: "Frage B" >> ask c: "Frage C" >> ask
print a ++ b ++ c -- Будущее авторазрешение">``` a: "Frage A" >> ask b: "Frage B" >> ask c: "Frage C" >> ask
print a ++ b ++ c -- Будущее авторазрешение
### Условия-гвардии в match
9 -> "critical"
| s if s > 5 -> "warning"
| _ -> "info"">```
fn classify severity
match severity
| s if s > 9 -> "critical"
| s if s > 5 -> "warning"
| _ -> "info"
Конкурентность: каналы
ch: chan 3
go { send ch "hello" }
go { send ch "world" }
print (recv ch) ++ " " ++ (recv ch)
Песочные профили
sandbox_profile "safe" {fs: "read-only", network: false, exec: false, ai: true}
sandbox_profile "agent" {fs: "temp-only", network: true, exec: false, ai: true}
set_sandbox "safe"
read_file "/etc/config" -- чтение разрешено
write_file "/etc/config" -- E_SANDBOX blocked
Архитектура
Лексер -> Парсер -> AST -> [ Tree-Walker | Compiler + VM ] | Встроенные функции (всего 245: 36 AI + 13 MCP + 192 стандартных) | MCP Server MCP Clients (stdio + HTTP)">``` Источник (.pipe) -> Лексер -> Парсер -> AST -> [ Tree-Walker | Compiler + VM ] | Встроенные функции (245: 36 AI + 13 MCP + 192 стандартных) | MCP Server <-> MCP Clients (stdio + HTTP)
- 67 типов токенов, 36 типов AST-узлов, 43 опкода
- ~37 000 строк кода на Go, 643 теста, 87 примеров программ
- Никаких зависимостей — чистая стандартная библиотека Go
## Документация
[→ Полная документация (English)](https://github.com/MachuraHarry/pipe/blob/master/docs/en/index.md)
[→ Vollständige Dokumentation (Deutsch)](https://github.com/MachuraHarry/pipe/blob/master/docs/de/index.md)
## Структура проекта
pipe/ ├── cmd/ │ ├── pipe/main.go # Точка входа │ └── pipe-lsp/ # Сервер языковой службы (IntelliSense) ├── pkg/ │ ├── ai/ # Интеграции AI-провайдеров │ ├── analysis/ # Библиотека IntelliSense (builtins, diagnostics, completion...) │ ├── ast/ # Определения AST-узлов │ ├── build/ # Конструктор самораспаковывающегося двоичного файла │ ├── cache/ # Кэш байт-кода │ ├── compiler/ # Компилятор в байткод │ ├── eval/ # Интерпретатор по дереву (tree-walk) │ ├── formatter/ # Форматтер кода │ ├── gen/ # Помощники генерации кода │ ├── lexer/ # Лексер и токены │ ├── mcp/ # MCP сервер и клиенты (нулевая зависимость) │ ├── object/ # Объекты времени выполнения │ ├── parser/ # Парсер │ ├── stdlib/ # Помощники стандартной библиотеки │ └── vm/ # Байткод VM ├── examples/ # 87 примеров программ ├── test/integration/ # Интеграционные тесты ├── vscode/ # Расширение VSCode (синтаксическая подсветка + LSP клиент) ├── docs/ # Документация (DE + EN) ├── website/ # Сайт проекта ├── modules/ # Языковые модули (mqtt, discord, x и т. д.) ├── Makefile ├── go.mod └── LICENSE
## Вклад
Смотрите [CONTRIBUTING.md](https://github.com/MachuraHarry/pipe/blob/master/CONTRIBUTING.md).
## Лицензия
MIT — см. [LICENSE](https://github.com/MachuraHarry/pipe/blob/master/LICENSE).