Skir: Современная альтернатива Protocol Buffers для типобезопасного обмена данными

Что делает Skir
Skir — это современная альтернатива Protocol Buffers, которая служит единым источником истины для типов данных. Вы пишете схему один раз в файле .skir и генерируете идиоматичный, типобезопасный код для нескольких языков.
Ключевые особенности и рабочий процесс
Вся конфигурация находится в одном YAML-файле. Вы можете инициализировать проект с помощью npx skir init. Режим отслеживания автоматически перекомпилирует код при изменении файлов.
Вот пример схемы из источника:
struct Point {
x: int32;
y: int32;
label: string;
}
struct Shape {
points: [Point];
/// Краткое описание этой фигуры.
label: string;
}
const TOP_RIGHT_CORNER: Point = {
x: 600,
y: 400,
label: "верхний правый угол",
};
Использование сгенерированного кода
Сгенерированный код включает методы сериализации и десериализации. Для TypeScript:
import { Point } from "../skirout/shapes";
const point = Point.create({
x: 3,
y: 4,
label: "P"
});
const pointJson = Point.serializer.toJson(point);
console.log(pointJson); // [3, 4, "P"]
const restored = Point.serializer.fromJson(pointJson);
console.log(restored.label); // "P"
Эволюция схемы и поддержка RPC
Skir включает встроенные проверки и рекомендации для безопасной эволюции схем в долгоживущих или распределённых системах. Он также поддерживает RPC со сквозной типобезопасностью, аналогичной gRPC.
Пример определения RPC:
struct WhatToWearRequest {
temperature_celsius: float32;
raining: bool;
}
struct WhatToWearResponse {
bottom_outfit: string;
sunglasses: bool;
}
method WhatToWear(WhatToWearRequest): WhatToWearResponse = 770862;
Дополнительные возможности
- Сериализация в компактный JSON (плотный, позволяет эволюцию схемы), читаемый JSON (для отладки) или бинарный формат (для производительности)
- Встроенный менеджер пакетов, который импортирует типы напрямую из репозиториев GitHub
- Расширение для VS Code с валидацией в реальном времени, автодополнением кода и автоматическим форматированием
- Поддерживаемые языки: TypeScript, Python, C++, Java, Kotlin, Dart
Для кого это предназначено
Командам, использующим стеки из разных языков, которым нужен типобезопасный обмен данными между сервисами, особенно полезно для full-stack приложений с разными языками на фронтенде и бэкенде.
📖 Read the full source: HN AI Agents
👀 Смотрите также

Сервер поиска MCP с ранжированием на основе обратной связи для Claude Desktop
Сообщество создало MCP-сервер поиска для Claude Desktop, который запускает поисковые системы Exa и Tavily параллельно без необходимости в API-ключах. После использования результата пользователи сообщают, сработал ли он, через инструмент outcome, который передает обратную связь в систему ранжирования для приоритизации URL-адресов, помогающих агентам добиваться успеха.

Клод Банан: Плагин Claude Code для генерации изображений с учетом дизайн-системы
Claude Banana — это плагин Claude Code для генерации изображений с использованием API Google Gemini. Он создаёт контекстно-зависимые промпты, анализируя конфигурации Tailwind, CSS-переменные, дизайн-токены и существующие ресурсы, чтобы понять визуальный стиль проекта.

Сравнение Dual DGX Sparks и Mac Studio M3 Ultra: практический тест для локального запуска Qwen3.5 397B
Разработчик сравнил локальный запуск Qwen3.5 397B на Mac Studio M3 Ultra 512GB за $10K и на настройке с двумя DGX Spark за $10K. Mac Studio показал 30-40 токенов/с с пропускной способностью памяти 800 ГБ/с, но медленным предзаполнением, в то время как Sparks выдавали 27-28 токенов/с с более быстрыми вычислениями, но сложной настройкой.

Claude Ops: Панель мониторинга браузера для отслеживания статуса Claude Code в реальном времени и суб-агентов
Бесплатная локальная панель мониторинга для macOS, которая отслеживает текущий статус сеансов Claude Code, используемый инструмент, порождённые подагенты и отправляет push-уведомления ОС, когда требуется ввод.