Repolode
gepheum

gepheum/skir

Декларативный язык схем, который генерирует типобезопасные модели данных и RPC-код для TypeScript, Python, Java, Go, C++ и других языков из одного файла .skir.

Open source альтернатива:Protocol Buffers

Звёзды
316
Форки
10
Открытые issues
1
Последний коммит
17 дней назад

Что это?

Skir — язык схем для описания типов данных и API в одном файле .skir. Генератор командной строки преобразует эти определения в нативный код для TypeScript, Python, Java, Go, C++, Rust, Kotlin, Swift и ряда других языков, благодаря чему клиент и сервер используют общий контракт.

Сгенерированные типы глубоко иммутабельны: при создании необходимо указать все поля. Проект поддерживает суммарные типы с константными или типизированными вариантами, массивы с индексацией по ключу и API для поиска, а также три режима сериализации: компактный JSON, читаемый JSON и бинарный формат. Кроме того, в проект входят проверки эволюции схемы, благодаря которым старые данные остаются десериализуемыми при изменении определений.

Для сервисов Skir предоставляет SkirRPC — лёгкий HTTP RPC-слой со встроенным приложением Studio для просмотра и тестирования методов. Типы также можно напрямую импортировать из репозиториев GitHub, а расширение для VS Code с language server обеспечивает проверку, автодополнение и форматирование.

Ключевые возможности

  • 01Генерирует типобезопасный код для более чем 10 языков из одного файла схемы.
  • 02Создаёт глубоко иммутабельные типы, для которых при создании необходимо указать все поля.
  • 03Поддерживает суммарные типы с константными или типизированными вариантами.
  • 04Предлагает сериализацию в компактный JSON, читаемый JSON и бинарный формат.
  • 05Включает SkirRPC — HTTP RPC-слой со встроенным Studio для тестирования методов.
  • 06Позволяет импортировать типы из репозиториев GitHub.

Сценарии использования

  • Общий набор типов запросов и ответов для фронтенда на TypeScript и бэкенда на Python или Go.
  • Замена определений Protocol Buffers на язык схем с суммарными типами и массивами с индексацией по ключу.
  • Описание типизированных API, которым необходим HTTP RPC-слой и наглядный интерфейс для тестирования.
  • Общий доступ к структурам данных в нескольких проектах с помощью импортов из GitHub.

Быстрый старт

  1. 1

    Откройте руководство по началу работы, чтобы ознакомиться с настройкой и рабочим процессом

  2. 2

    Создайте файл схемы .skir и сгенерируйте код для целевого языка

Что важно знать

  • Генератор Elixir поддерживается сообществом, а не официальной командой.

Темы

Частые вопросы

Что такое skir?
Декларативный язык схем, который генерирует типобезопасные модели данных и RPC-код для TypeScript, Python, Java, Go, C++ и других языков из одного файла .skir. Skir — язык схем для описания типов данных и API в одном файле .skir. Генератор командной строки преобразует эти определения в нативный код для TypeScript, Python, Java, Go, C++, Rust, Kotlin, Swift и ряда других языков, благодаря чему клиент и сервер используют общий контракт.
skir можно использовать бесплатно? Какая у него лицензия?
skir распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
skir всё ещё поддерживается?
Активно поддерживается. Последний коммит в skir — 6 окт. 2026 г..
Для чего можно использовать skir?
Общий набор типов запросов и ответов для фронтенда на TypeScript и бэкенда на Python или Go. Замена определений Protocol Buffers на язык схем с суммарными типами и массивами с индексацией по ключу. Описание типизированных API, которым необходим HTTP RPC-слой и наглядный интерфейс для тестирования. Общий доступ к структурам данных в нескольких проектах с помощью импортов из GitHub.
Как установить skir?
Откройте руководство по началу работы, чтобы ознакомиться с настройкой и рабочим процессом Создайте файл схемы .skir и сгенерируйте код для целевого языка
Где скачать skir?
Исходный код и инструкции по установке — на GitHub: https://github.com/gepheum/skir

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты