Кроссплатформенная библиотека сериализации, позволяющая читать бинарные данные напрямую, без предварительного разбора или распаковки.
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
Откройте руководство по началу работы, чтобы ознакомиться с настройкой и рабочим процессом
- 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 обновляется ежедневно.
Похожие проекты
Независимый от языка RPC-фреймворк с генератором кода для создания совместимых клиентов и серверов на множестве языков программирования.
Сквозные типобезопасные API для TypeScript без схем и генерации кода: типы общие для сервера и клиента.
CLI-инструмент для вызова gRPC-серверов: принимает JSON, как curl, и находит схемы через server reflection или proto-файлы.
Расширяемый линтер и автоисправитель, который проверяет соблюдение правил стиля Protocol Buffer без компилятора protoc.
Кроссплатформенный фреймворк для небольших и быстрых десктопных приложений: TypeScript в основном процессе и webview; также поддерживаются Zig, Rust, Go и Odin.