Repolode
gepheum

gepheum/skir

一种声明式模式语言,可由同一份 .skir 文件生成 TypeScript、Python、Java、Go、C++ 等多语言的类型安全数据模型与 RPC 代码。

可替代:Protocol Buffers

Star
316
Fork
10
未关闭 Issue
1
最近提交
17天前

这是什么?

Skir 是一种用于定义数据类型和 API 的模式语言,所有定义都写在一个 .skir 文件中。命令行生成器会把它转换为 TypeScript、Python、Java、Go、C++、Rust、Kotlin、Swift 等多种语言的原生代码,让客户端和服务端共享同一份契约。

生成的类型是深度不可变的,所有字段在构造时必须赋值。项目支持带常量或带类型负载的和类型(sum type)、可按键查找的数组,以及紧凑 JSON、可读 JSON 和二进制三种序列化方式。模式演进时还会进行兼容性检查,确保旧数据仍可反序列化。

在服务端场景中,Skir 提供轻量的 HTTP RPC 框架 SkirRPC,并内置 Studio 应用用于浏览和测试方法。类型还可以直接从 GitHub 仓库导入,配套的 VS Code 扩展和语言服务器提供校验、补全和格式化功能。

核心功能

  • 01用一份模式文件为 10 多种语言生成类型安全代码。
  • 02生成深度不可变的类型,所有字段在构造时必填。
  • 03支持带常量或带类型负载的和类型。
  • 04提供紧凑 JSON、可读 JSON 和二进制三种序列化方式。
  • 05内置 SkirRPC 及可测试方法的 Studio 应用。
  • 06支持从 GitHub 仓库直接导入类型。

适用场景

  • 在 TypeScript 前端与 Python 或 Go 后端之间共享请求和响应类型。
  • 用支持和类型与键索引数组的模式语言替代 Protocol Buffers 定义。
  • 构建需要 HTTP RPC 层和可视化测试界面的类型化 API。
  • 通过 GitHub 导入在多个项目之间共享数据结构。

快速上手

  1. 1

    打开入门指南,查看安装与工作流程

  2. 2

    编写 .skir 模式文件,并为目标语言生成代码

使用前须知

  • Elixir 代码生成器由社区维护,而非官方提供。

标签

常见问题

skir 是什么?
一种声明式模式语言,可由同一份 .skir 文件生成 TypeScript、Python、Java、Go、C++ 等多语言的类型安全数据模型与 RPC 代码。 Skir 是一种用于定义数据类型和 API 的模式语言,所有定义都写在一个 .skir 文件中。命令行生成器会把它转换为 TypeScript、Python、Java、Go、C++、Rust、Kotlin、Swift 等多种语言的原生代码,让客户端和服务端共享同一份契约。
skir 可以免费使用吗?用的什么许可证?
skir 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
skir 还在维护吗?
活跃维护中。skir 最近一次提交是在 2026年10月6日。
skir 适合用来做什么?
在 TypeScript 前端与 Python 或 Go 后端之间共享请求和响应类型。 用支持和类型与键索引数组的模式语言替代 Protocol Buffers 定义。 构建需要 HTTP RPC 层和可视化测试界面的类型化 API。 通过 GitHub 导入在多个项目之间共享数据结构。
skir 怎么安装和运行?
打开入门指南,查看安装与工作流程 编写 .skir 模式文件,并为目标语言生成代码
在哪里获取 skir?
源代码和安装说明在 GitHub 上:https://github.com/gepheum/skir

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目